Expand description
Mecha10 Node Resolver
Lightweight runtime resolver for downloading and spawning mecha10 framework nodes. This crate is designed to be embedded in robot binaries to enable runtime download of pre-compiled framework nodes, avoiding slow cross-compilation during build.
§Architecture
Robot Binary (thin)
│
├── Custom nodes (compiled in)
│
└── NodeResolver
│
├── resolve("speaker") → downloads if needed
│
└── spawn("speaker", env) → runs as subprocess
│
└── ~/.mecha10/bin/speaker-0.1.44-aarch64-linux-musl§Usage
use mecha10_node_resolver::NodeResolver;
use std::collections::HashMap;
let resolver = NodeResolver::new()?;
// Check if it's a framework node
if NodeResolver::is_framework_node("@mecha10/speaker") {
// Resolve (downloads if needed)
let binary_path = resolver.resolve("speaker").await?;
// Spawn as subprocess
let mut env = HashMap::new();
env.insert("REDIS_URL".to_string(), "redis://localhost:6379".to_string());
let child = resolver.spawn("speaker", env).await?;
}Structs§
- Node
Resolver - Node resolver for downloading and spawning framework nodes