mirror of
https://github.com/Astatin3/unshell.git
synced 2026-06-08 22:38:01 -06:00
9262e270948b0ef7e1dea023507c626a14c94345
UnShell is a tree-addressed RPC and data-exchange protocol designed for a hierarchy of endpoints. It provides a lightweight way to route calls, streams, and faults through a tree-structured network of nodes.
Features
- Tree-Based Routing: Path-based addressing with longest-prefix matching.
- RPC and Streaming: Supports simple request-response (Call) and bidirectional streaming (Data).
- Hierarchical Control: Authority-restricted downward calls and upstream-only faults.
- Introspection: Mandatory discovery mechanism for endpoints and leaves.
- no_std Compatible: Core protocol implementation is designed for constrained environments.
Architecture
The protocol is organized into:
unshell: Core protocol logic, framing, and routing.ush-treetest: A testbed implementation for validating the protocol.ush-obfuscate: Utilities for code obfuscation.base62: Encoding utilities.
Getting Started
Build
cargo build
Run Tests
cargo test
Protocol Specification
For detailed information on the wire format and behavioral invariants, please refer to PROTOCOL.md.
Description
Languages
Rust
99.7%
Shell
0.3%
