mirror of
https://github.com/ion232/reticulum-zig.git
synced 2025-12-22 06:37:05 +00:00
7a6f683550e4966e8263b14cc68ae9a8d192240f
Overview
An implementation of Reticulum in Zig targeting operating systems and embedded devices.
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.
Boards
boards/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 picofromboards.
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.
Licence
- Currently under Apache 2.0 for now; if I move over to the Reticulum licence at some point, it will only be after significant thought and consideration.
Description
Languages
Zig
100%