Skip to content

Latest commit

 

History

History
55 lines (39 loc) · 1.92 KB

README.md

File metadata and controls

55 lines (39 loc) · 1.92 KB

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.