-
Notifications
You must be signed in to change notification settings - Fork 0
18 Protocol Extensions and WASM Plugins
Corresponding Specifications:
sys-arch/01-protocol-extension-system-architecture.md,sys-arch/21-third-party-protocol-extensions-architecture.md,sys-arch/22-wasm-compatible-components-architecture.md,sys-arch/24-plugin-module-ecosystem-architecture.md,sys-arch/ui-ux-19-plugin-module-ecosystem-architecture.md
Key Crates:crates/siar-protocol-ext,crates/siar-protocol
The SIAR protocol extension engine (crates/siar-protocol-ext) is 108/108 sections complete, providing a hardened, production-ready framework for dynamic protocol extensions:
pub struct ExtensionDescriptor {
pub extension_id: ExtensionId, // e.g. "org.siar.gis.tactical-map"
pub version: ExtensionVersion, // SemVer compliant versioning
pub author_signature: Signature, // Ed25519 publisher signature
pub required_capabilities: CapabilityBitmask,
pub permissions: Vec<PluginPermission>, // StorageAccess, LocationAccess, NetworkAccess
}+-------------------------------------------------------------------------------+
| Standard SIAR Wire Frame |
| - Magic Header + Frame Length + Version + Ephemeral Routing Token |
+-------------------------------------------------------------------------------+
| Extension Envelope (Dynamic Tag) |
| - Extension ID: 0x474953 ("GIS") - Extension Version: 0x010200 |
| - Typed Binary Payload (Protobuf / Postcard / Raw Bytes) |
+-------------------------------------------------------------------------------+
-
Weighted Fair Queue Scheduler (
FairScheduler,BoundedQueue): Enforces bounded resource usage and fair queueing across concurrently registered protocol extensions, preventing any single extension from monopolizing network bandwidth or buffer memory. -
Health Monitoring & Fault Recovery (
health.rs,violation.rs): Real-time error taxonomy tracking runtime violations, automatically isolating unhealthy extension handlers and shedding load under memory pressure. -
Capability & State Isolation (
isolation.rs): Strictly isolates per-extension state stores and ensures extensions cannot tamper with core routing tables or cryptographic key envelopes. -
Deprecation & Version Migration Engine (
deprecation.rs): Structured deprecation lifecycles with sunset timestamps, warning grace periods, and backward-compatibility fallbacks. -
Definition of Done Self-Audit (
definition_of_done.rs): Built-in 16-point architectural verification matrix embedded directly in the crate test suite.
Third-party plugin code runs in a sandboxed WebAssembly execution environment with strict hardware boundaries:
graph TD
HostCore[SIAR Rust Host Core] -->|Enforces Limits| Sandbox[Wasmtime Execution Sandbox]
Sandbox --> WasmModule[Third-Party Plugin Wasm Module]
WasmModule -.->|Requests Location| PermCheck{Permission Granted?}
PermCheck -->|Yes| HostCore
PermCheck -->|No| Reject[Permission Denied Error]
- Instruction / Fuel Limiting: Each plugin execution is granted a finite fuel budget (e.g. 5,000,000 instructions) to prevent infinite loops and denial-of-service hangs.
- Strict Memory Quotas: Linear memory is capped (maximum 32 MB per plugin instance).
- No Direct OS Syscalls: Plugins have zero direct access to filesystem, raw network sockets, or hardware devices; all I/O occurs via audited host function bindings.
-
Self-Contained Bundles (
.siarplugin): A signed ZIP archive containing the compiledplugin.wasm, manifest, localized strings, and UI vector icons. - Offline Sideloading: Plugins can be shared peer-to-peer over BLE or Wi-Fi Direct like any regular file attachment.
- Revocation List: Compromised or malicious plugin IDs are gossiped via the standard cryptographic tombstone network.
SIAR — Survivable Identity & Autonomous Routing
Open Source Mesh & DTN Communications Platform | Dual Licensed under MIT / Apache-2.0 / Commercial
Documentation Index • GitHub Repository • System Specifications
- 04-Autonomous-Routing-and-Policy-Engine
- 05-Proximity-and-Hardware-Transports
- 06-Delay-Tolerant-Networking-and-Bundle-Forwarding
- 07-Battery-Aware-Scheduling-and-Emergency-Mesh
- 08-Offline-Event-Log-and-Outbox-Engine
- 09-Robust-Blob-Storage-and-Chunk-Transfers
- 10-Crash-Recovery-and-Data-Portability
- 11-Realtime-Audio-Video-Calling-Architecture
- 12-Cross-Platform-Client-Architecture
- 13-Messaging-Timeline-Composer-and-Inbox
- 14-Contacts-Groups-and-Security-Center
- 15-Nearby-Discovery-and-Out-of-Band-Pairing
- 16-Notifications-Presence-and-Background-Lifecycle
- 17-Local-Knowledge-Retrieval-and-Search
- 25-Design-System-Tokens-and-Responsive-Layouts
- 26-UI-UX-Performance-Testing-and-Quality-Gates
- 18-Protocol-Extensions-and-WASM-Plugins
- 19-Headless-Daemons-and-Embedded-Nodes
- 20-C-ABI-FFI-and-Native-Language-Bindings
- 21-Testing-Fuzzing-and-Network-Diagnostics
- 22-Getting-Started-and-Developer-Guide
- 23-Off-Grid-Survival-and-Field-Operations-Guide
- 24-System-Comparison-and-Benchmarking