Crate mecha10_node_resolver

Crate mecha10_node_resolver 

Source
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§

NodeResolver
Node resolver for downloading and spawning framework nodes