Files
unshell/README.md
T
Michael Mikovsky 9262e27094 Add banner and logo
2026-04-24 22:27:26 -06:00

35 lines
1.2 KiB
Markdown

![unshell logo](https://github.com/astatin3/unshell/blob/main/media/full_banner.png?raw=true)
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
```bash
cargo build
```
### Run Tests
```bash
cargo test
```
## Protocol Specification
For detailed information on the wire format and behavioral invariants, please refer to `PROTOCOL.md`.