mecha10-node-resolver 0.1.44

Lightweight runtime resolver for downloading and spawning mecha10 framework nodes
Documentation

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;

# async fn example() -> anyhow::Result<()> {
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?;
}
# Ok(())
# }