Skip to content

An implementation of Reticulum in Zig for operating systems and embedded devices

License

Notifications You must be signed in to change notification settings

ion232/reticulum-zig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

An implementation of Reticulum in Zig targeting operating systems and embedded devices.

Roadmap

  • Implement core transport.
  • Test core transport.
  • Implement a transport node pico build.
  • Test transport node pico build.
  • Implement app.
  • Test app.

Structure

App

  • app/ is the classic Reticulum app for standard operating systems.
  • Currently this is fairly empty as I work on the core functionality.

Core

  • core/ is the core functionality of Reticulum.
  • Provides the means to setup nodes and their interfaces without coupling to operating system calls.
  • Built as a module for use in embedded and operating systems.
  • The crypto implementation currently leverages std.crypto from the zig std library.
  • Eventually I will provide an option to use OpenSSL.

Hardware

  • hardware/ stores image setups for embedded devices that users can build with one command.
  • Makes use of microzig as a submodule for targeting embedded devices.
  • Currently there is a very simple proof of concept for the pico.
  • It makes an identity, endpoint and announce packet and sends it over serial.
  • The image can be built by running zig build -Doptimize=ReleaseSafe pico from hardware.
  • Note that the upstream USB CBC code is known to be buggy.

Test

  • test/ stores integration tests for core.
  • Eventually these will be done via deterministic simulation.
  • This will provide strong assurances on behaviour and make debugging much simpler.

Goals

  • Parity to reference implementation in core behaviour.
  • Cross-platform app for running on operating systems.
  • Providing one-line image builds of Reticulum for embedded devices.
  • Option of using OpenSSL for crypto.
  • Determinstic simulation testing.
  • Comprehensive integration tests.

Anti-goals

  • Exact parity to reference implementation in terminology/structure.

About

An implementation of Reticulum in Zig for operating systems and embedded devices

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages