mirror of
https://github.com/Astatin3/unshell.git
synced 2026-06-08 22:38:01 -06:00
9e74f6d6f39fbdf8fa81ec8c31d28c00de66ca3d
UnShell
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%