Files
compute/Cargo.toml
T
Karti Tripathi 91a47fb42c
ci / rust (push) Successful in 2m26s
Lumbridge Compute
Governed compute for unified-memory AI hardware — the machines where CPU and
GPU share one pool and there is no separate VRAM allocation to bounce off.
Over-commit that pool and the box thrashes and wedges, SSH and ping included,
before the OOM killer gets a turn.

Compute does not run inference. It supervises the servers that do:

- Admission control. A model starts only if committed + requested + margin
  fits the budget. The refusal is the feature.
- A 1 Hz watchdog on MemAvailable that stops the newest model before thrash.
- Scenes: named sets of models activated as one transactional unit, with
  pre-flight validation and rollback to the previously active Scene on
  failure. Scenes reference model ids, never weight paths or commands, so a
  Scene obtained from elsewhere cannot introduce code.
- Process ownership bound to (boot_id, pid, start_time_ticks, pgid == pid),
  so a reused PID can never be group-killed.
- A protocol-transparent TCP gateway, so clients keep one address while model
  runtimes move behind it.
- An MCP server, so agents drive the node as tools rather than as a CLI.

One binary, six direct dependencies, no async runtime outside the MCP surface.

Published from the internal monorepo with a fresh history. The private
development tree keeps its own history; nothing here carries it.
2026-08-03 16:22:21 -07:00

42 lines
1.5 KiB
TOML

[package]
name = "lumbridge-compute"
description = "Lumbridge Compute — safe AI workload orchestration for accelerator nodes."
readme = "README.md"
keywords = ["dgx-spark", "gb10", "llm", "orchestration", "unified-memory"]
categories = ["command-line-utilities"]
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
authors = ["Karti Tripathi"]
repository = "https://git.karti.ai/lumbridge-public/compute"
# Raised from 1.78 by the MCP server: `rmcp` is edition 2024 and declares 1.88.
# Nothing else here needs it, so this is the floor to drop back down to if the
# MCP surface is ever removed.
rust-version = "1.88"
[[bin]]
name = "lumbridge-compute"
path = "src/main.rs"
[dependencies]
anyhow = "1"
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
libc = "0.2"
# MCP server surface. `rmcp` is Apache-2.0, matching this crate's own licence,
# and only the server half is compiled in — Compute never acts as an MCP client.
# `fs` is on tokio because the stdio transport is handed a dup'd descriptor
# rather than fd 1 itself; see src/mcp.rs.
rmcp = { version = "3", features = ["server", "transport-io", "macros"] }
schemars = "1"
tokio = { version = "1", features = ["rt", "io-std", "fs", "time"] }
# Keeps `lumbridge-compute` a single stripped static binary. Lived at the
# workspace root before this crate was split out; Cargo ignores [profile] in
# workspace members, so it has to be here now.
[profile.release]
strip = true
lto = true