mubit-sdk (Rust)
Public unified Rust SDK for Mubit.
Usage
use mubit_sdk::{Client, ClientConfig};
use serde_json::json;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = env::var("MUBIT_API_KEY")?;
let client = Client::new(
ClientConfig::default()
.run_id("demo_run")
.api_key(api_key)
)?;
let accepted = client.control.ingest(json!({
"run_id": "demo_run",
"agent_id": "sdk-quickstart",
"idempotency_key": "quickstart-1",
"parallel": false,
"items": [{
"item_id": "item-1",
"content_type": "text",
"text": "hello mubit",
"payload_json": "",
"hints_json": "",
"metadata_json": "{\"source\":\"quickstart\"}",
}],
})).await?;
let mut job = client.control.get_ingest_job(json!({
"run_id": "demo_run",
"job_id": accepted["job_id"],
})).await?;
while !job.get("done").and_then(|v| v.as_bool()).unwrap_or(false) {
tokio::time::sleep(std::time::Duration::from_millis(200)).await;
job = client.control.get_ingest_job(json!({
"run_id": "demo_run",
"job_id": accepted["job_id"],
})).await?;
}
let _answer = client.control.query(json!({
"run_id": "demo_run",
"query": "what did we ingest?",
"mode": "agent_routed",
"direct_lane": "semantic_search",
"include_linked_runs": false,
"limit": 5,
})).await?;
Ok(())
}
transport defaults to auto (gRPC primary, HTTP fallback).
Endpoint resolution order:
- explicit
endpoint / http_endpoint / grpc_endpoint on ClientConfig
- env vars
MUBIT_ENDPOINT, MUBIT_HTTP_ENDPOINT, MUBIT_GRPC_ENDPOINT
- shared defaults
https://api.mubit.ai and grpc.api.mubit.ai:443
Control-Plane Examples
From repository root:
set -a && [ -f .env ] && source .env && set +a
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_ingest_job_lifecycle
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_ingest_idempotency
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_batch_insert_semantic_direct
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_query_agent_routed
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_query_direct_bypass_matrix
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example core_direct_search_optional
cargo run --manifest-path sdk/rust/mubit-sdk/Cargo.toml --example control_state_structured_variables