mirror of
https://github.com/Astatin3/unshell.git
synced 2026-06-08 22:38:01 -06:00
Improve protocol implementation.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# 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
|
||||
```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`.
|
||||
Reference in New Issue
Block a user