attermann / microReticulum

WIP: Port of Reticulum Network Stack to C++ specifically but not exclusively targeting ESP32 and better MCUs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

microReticulum

Port of Reticulum Network Stack to C++ specifically but not exclusively targeting 32-bit and better MCUs.

Dependencies

Build environment is configured for use in VSCode and PlatformIO.

This API is dependent on the following external libraries:

Building

Building and uploading to hardware is simple through the VSCode PlatformIO IDE

  • Install VSCode and PlatformIO
  • Clone this repo
  • Lanch PlatformIO and load repo
  • In PlatformIO, select the environment for intended board
  • Build, Upload, and Monitor to observe application logging

Instructions for command line builds and building of individual example applications coming soon.

Roadmap

  • Framework for simple C++ API that mimics Python reference implementation with implicit object sharing
  • Utility class to efficiently handle byte buffers
  • Implemenmtat basic Identity, Destination and Packet
  • Successful testing of Announce mechanism
  • Implement Ed2551 public-key signature and X25519 key exchange
  • Implement encryption including AES, AES-CBC, HKDF, HMAC, PKCS7, and Fernet
  • Successful testing of Packet encrypt/decrypt/sign/prof
  • Implement dynamic Interfaces
  • Implement UDP Interface for testing against Python reference Reticulum instances
  • Implement basic Transport functionality
  • Successful testing of end-to-end Path Finding
  • Implement persistence for storage of runtime data structures (config, identities, routing tables, etc.)
  • Support for Links and Resources in Transport
  • Implement Packet proofs
  • Successful testing of Transport of both Packets and Links
  • Implement memory management appropriate for memory constricted MCUs
  • Implement Link, Resource, Channel and Buffer
  • Add example applications utilizing the C++ API
  • Configure PlatformIO to easily build and upload test applications to board
  • Add buid tagets for all boards currently supported by RNode

Please open an Issue if you have trouble building ior using the API, and feel free to start a new Discussion for anything else.

About

WIP: Port of Reticulum Network Stack to C++ specifically but not exclusively targeting ESP32 and better MCUs.

License:Apache License 2.0


Languages

Language:C++ 91.2%Language:C 8.8%