mirror of
https://github.com/ion232/reticulum-zig.git
synced 2025-12-22 06:37:05 +00:00
7ff7b7dcfba135e6f008356b43be7e03795a6419
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 picofromhardware. - 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.
Description
Languages
Zig
100%