Skip to content

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

License

Notifications You must be signed in to change notification settings

attermann/microReticulum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • Implement Channel and Buffer
  • Add example applications utilizing the C++ API
  • Configure PlatformIO to easily build and upload test applications to board
  • Add build tagets for all boards currently supported by RNode
  • Implement new combination caching/storage manager for managing persistent data

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published