Sudo-Ivan 97353d430b
All checks were successful
Go Build Multi-Platform / build (amd64, linux) (push) Successful in 45s
Bearer / scan (push) Successful in 9s
Go Build Multi-Platform / build (amd64, darwin) (push) Successful in 46s
Go Build Multi-Platform / build (arm, windows) (push) Successful in 41s
Go Build Multi-Platform / build (arm, freebsd) (push) Successful in 43s
Go Build Multi-Platform / build (wasm, js) (push) Successful in 45s
Go Build Multi-Platform / build (arm64, windows) (push) Successful in 47s
Go Test Multi-Platform / Test (ubuntu-latest, arm64) (push) Successful in 1m21s
Go Revive Lint / lint (push) Successful in 57s
Run Gosec / tests (push) Successful in 1m9s
Go Test Multi-Platform / Test (ubuntu-latest, amd64) (push) Successful in 2m33s
Go Build Multi-Platform / build (amd64, windows) (push) Successful in 9m27s
Go Build Multi-Platform / build (amd64, freebsd) (push) Successful in 9m30s
Go Build Multi-Platform / build (arm, linux) (push) Successful in 9m30s
Go Build Multi-Platform / build (arm64, darwin) (push) Successful in 9m28s
Go Build Multi-Platform / build (arm64, freebsd) (push) Successful in 9m30s
Go Build Multi-Platform / build (arm64, linux) (push) Successful in 9m28s
Go Build Multi-Platform / Create Release (push) Has been skipped
chore: add CONTRIBUTORS file to document project contributors and their contributions
2026-01-01 13:10:55 -06:00
2025-12-29 21:40:20 -06:00
2025-12-28 22:28:46 -06:00
2025-11-20 21:46:15 -06:00
2025-12-28 22:18:38 -06:00

Reticulum-Go

Revive Lint Go Build Go Test Gosec Bearer

A high-performance Go implementation of the Reticulum Network Stack

Project Goals:

  • Full Protocol Compatibility: Maintain complete interoperability with the Python reference implementation
  • Cross-Platform Support: Support for legacy and modern platforms across multiple architectures
  • Performance: Leverage Go's concurrency model and runtime for improved throughput and latency
  • More Privacy and Security: Additional privacy and security features beyond the base specification

Prerequisites

  • Go 1.24 or later
  • Task for build automation

Note: You may need to set alias task='go-task' in your shell configuration to use task instead of go-task.

Nix

If you have Nix installed, you can use the development shell which automatically provides all dependencies including Task:

nix develop

This will enter a development environment with Go and Task pre-configured.

Quick Start

Building the Binary

task build

The compiled binary will be located in bin/reticulum-go.

Running the Application

task run

Running Tests

task test

Development

Code Quality

Format code:

task fmt

Run static analysis checks (formatting, vet, linting):

task check

Testing

Run all tests:

task test

Run short tests only:

task test-short

Generate coverage report:

task coverage

Benchmarking

Run benchmarks with standard GC:

task bench

Run benchmarks with experimental Green Tea GC:

task bench-experimental

Compare both GC implementations:

task bench-compare

Tasks

The project uses Task for all development and build operations.

| Task                | Description                                          |
|---------------------|------------------------------------------------------|
| default             | Show available tasks                                 |
| all                 | Clean, download dependencies, build and test         |
| build               | Build release binary (stripped, static)              |
| debug               | Build debug binary                                   |
| build-experimental  | Build with experimental Green Tea GC (Go 1.25+)      |
| experimental        | Alias for build-experimental                         |
| release             | Build stripped static binary for release             |
| fmt                 | Format Go code                                       |
| fmt-check           | Check if code is formatted (CI-friendly)             |
| vet                 | Run go vet                                           |
| lint                | Run revive linter                                    |
| scan                | Run gosec security scanner                           |
| check               | Run fmt-check, vet, and lint                         |
| bench               | Run benchmarks with standard GC                      |
| bench-experimental  | Run benchmarks with experimental GC                  |
| bench-compare       | Run benchmarks with both GC settings                 |
| clean               | Remove build artifacts                               |
| test                | Run all tests                                        |
| test-short          | Run short tests only                                 |
| test-race           | Run tests with race detector                         |
| coverage            | Generate test coverage report                        |
| checksum            | Generate SHA256 checksum for binary                  |
| deps                | Download and verify dependencies                     |
| mod-tidy            | Tidy go.mod file                                     |
| mod-verify          | Verify dependencies                                  |
| build-linux         | Build for Linux (amd64, arm64, arm, riscv64)         |
| build-all           | Build for all Linux architectures                    |
| build-wasm          | Build WebAssembly binary with standard Go compiler   |
| test-wasm           | Run WebAssembly tests using Node.js                  |
| run                 | Run with go run                                      |
| tinygo-build        | Build binary with TinyGo compiler                    |
| tinygo-wasm         | Build WebAssembly binary with TinyGo                 |
| install             | Install dependencies                                 |

example: task build

Cross-Platform Builds

Linux Builds

Build for all Linux architectures:

task build-all

Build for specific Linux architecture:

task build-linux

Embedded Systems and WebAssembly

For building for embedded systems, see the tinygo branch. Requires TinyGo 0.37.0+.

Build WebAssembly binary with standard Go compiler:

task build-wasm

Run WebAssembly unit tests (requires Node.js):

task test-wasm

Build with TinyGo:

task tinygo-build

Build WebAssembly binary with TinyGo:

task tinygo-wasm

Experimental Features

Green Tea Garbage Collector

Build with experimental Green Tea GC (requires Go 1.25+):

task build-experimental

This enables the experimental garbage collector for performance evaluation and testing.

License

This project is licensed under the 0BSD license.

v0.6.0 Latest
2025-12-30 18:41:36 +00:00
Languages
Go 96.3%
JavaScript 3.2%
Nix 0.3%
Dockerfile 0.1%
Shell 0.1%