No description
  • Rust 59.1%
  • Shell 21.9%
  • HTML 17.6%
  • Makefile 1.4%
Find a file
despiegk 8fca549def
Some checks failed
Build and Test / build-test (push) Failing after 2s
Build Linux Release / build-linux (linux-amd64, false, x86_64-unknown-linux-musl) (push) Failing after 10s
Build Linux Release / build-linux (linux-arm64, true, aarch64-unknown-linux-gnu) (push) Failing after 11s
Build macOS Release / build-macos (macos-amd64, x86_64-apple-darwin) (push) Has been cancelled
Build macOS Release / build-macos (macos-arm64, aarch64-apple-darwin) (push) Has been cancelled
chore: canonicalize LICENSE
2026-05-27 19:58:47 +02:00
.github/workflows Optimize build system with build_lib conventions and GitHub Actions workflows 2026-02-08 14:44:14 +04:00
crates/my_client Replace redb with in-memory storage, add geo/map/click-route, rayon parallelism, and client crate 2026-02-08 22:26:58 +04:00
schemas Initial HeroLib server bootstrap 2026-02-08 14:40:02 +04:00
scripts Optimize build system with build_lib conventions and GitHub Actions workflows 2026-02-08 14:44:14 +04:00
src fix: use relative paths for proxy compatibility 2026-02-19 11:29:59 +01:00
static init 2026-02-08 19:38:40 +04:00
templates fix: use relative paths for proxy compatibility 2026-02-19 11:29:59 +01:00
tests Replace redb with in-memory storage, add geo/map/click-route, rayon parallelism, and client crate 2026-02-08 22:26:58 +04:00
.gitignore Add admin API, populate presets with progress, graph limits, and proper .gitignore 2026-02-08 20:03:19 +04:00
buildenv.sh init 2026-02-08 19:38:40 +04:00
Cargo.lock Merge branch 'development' of https://forge.ourworld.tf/geomind_code/my_router_path into development 2026-02-22 06:18:32 +03:00
Cargo.toml fix: use relative paths for proxy compatibility 2026-02-19 11:29:59 +01:00
LICENSE chore: canonicalize LICENSE 2026-05-27 19:58:47 +02:00
Makefile fix: make RELEASE_DIR respect CARGO_TARGET_DIR 2026-02-11 11:38:02 +01:00
openrpc.json init 2026-02-08 19:38:40 +04:00
README.md docs: restructure README with standard sections 2026-05-27 16:24:54 +02:00

my_router_path

What this is

A HeroLib-based HTTP server providing a JSON-RPC 2.0 interface for routing through a supernode mesh network. Built with Rust 1.92+ and Edition 2024, it handles edge registration, heartbeat, lookup, supernode link reporting, route finding, graph visualization, and benchmarking across a distributed network topology.

What this repository contains

  • src/main.rs — Server entry point with HTTP, JSON-RPC /rpc, and MCP /mcp endpoints
  • src/lib.rs — Library root exposing config, RPC, types, crypto, state, storage, routing, precompute, API, MCP, handlers, and logging modules
  • src/handlers.rs — HTTP fragment handlers for UI visualization
  • src/precompute.rs — Background precomputation task for routing optimization
  • src/types.rs — Core type definitions
  • src/config.rs — Server configuration
  • src/state.rs — Application state management
  • src/logging.rs — Structured logging utilities
  • tests/ — Integration, routing, and storage tests
  • Cargo.toml — Workspace manifest with root package and my_client crate
  • Makefile — Build targets for development and release
  • schemas/models.oschema — OSchema type definitions

Build & Run

# Development mode (debug)
make rundev

# Release mode
make run

Test the server:

curl http://localhost:2918/health | jq

Available Make Targets

  • make build — Build release binary
  • make rundev — Run in development mode (with debug logs)
  • make run — Run release binary
  • make test — Run all tests
  • make clean — Clean build artifacts
  • make check — Run cargo check
  • make fmt — Format code with rustfmt
  • make clippy — Run clippy linter

Dependencies

  • axum — HTTP framework
  • tokio — Async runtime
  • serde/serde_json — Serialization
  • ed25519-dalek — Cryptographic node identity
  • askama — HTML templating
  • tower-http — CORS and middleware
  • parking_lot / rayon — Concurrency

Role in the stack

This component provides the routing backbone for the Mycelium mesh network, enabling supernodes to report links, edges to register and heartbeat, and consumers to find optimal routes through the network. It exposes both a JSON-RPC API and an HTML UI for visualization and administration.

Relation to ThreeFold

This technology is used within the ThreeFold ecosystem and was first deployed on the ThreeFold Grid. The component itself is designed as reusable infrastructure technology and should be understood by its technical function first, independent of any specific deployment.

Ownership

This repository is owned and maintained by TF-Tech NV, a Belgian company responsible for the development and maintenance of this technology.

License

This project is licensed under the Apache License 2.0 — see the LICENSE file for details.