[workspace]
members = [
"crates/quic-multistream",
"crates/temporal-compare",
"crates/nanosecond-scheduler",
"crates/temporal-attractor-studio",
"crates/temporal-neural-solver",
"crates/strange-loop",
]
exclude = ["npm-wasm"]
[workspace.lints.rust]
unsafe_code = "deny"
unused_must_use = "deny"
[workspace.lints.clippy]
dbg_macro = "warn"
todo = "warn"
unimplemented = "warn"
[package]
name = "midstream"
version = "0.2.0"
edition = "2021"
rust-version = "1.81"
description = "Real-time LLM streaming with inflight analysis"
license = "MIT OR Apache-2.0"
repository = "https://github.com/ruvnet/midstream"
[features]
default = []
lean-agentic = []
[dependencies]
tokio = { version = "1.42.0", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
async-trait = "0.1"
futures = "0.3.31"
tracing = "0.1"
config = { version = "0.13", features = ["toml"] }
chrono = "0.4"
reqwest = { version = "0.11", features = ["json", "stream"] }
eventsource-stream = "0.2"
tokio-stream = "0.1"
dotenv = "0.15"
async-stream = "0.3"
bytes = "1"
thiserror = "2.0"
dashmap = "6.1"
lru = "0.12"
midstreamer-temporal-compare = { version = "0.1.1", path = "crates/temporal-compare" }
midstreamer-scheduler = { version = "0.1.1", path = "crates/nanosecond-scheduler" }
midstreamer-attractor = { version = "0.1.1", path = "crates/temporal-attractor-studio" }
midstreamer-neural-solver = { version = "0.1.1", path = "crates/temporal-neural-solver" }
midstreamer-strange-loop = { version = "0.1.1", path = "crates/strange-loop" }
midstreamer-quic = { version = "0.1.1", path = "crates/quic-multistream" }
nalgebra = "0.33"
ndarray = "0.16"
[dev-dependencies]
mockall = "0.11"
tokio = "1.42.0"
tokio-test = "0.4"
criterion = { version = "0.5", features = ["async_tokio", "html_reports"] }
[[bench]]
name = "lean_agentic_bench"
harness = false
[[bench]]
name = "temporal_bench"
harness = false
[[bench]]
name = "scheduler_bench"
harness = false
[[bench]]
name = "attractor_bench"
harness = false
[[bench]]
name = "solver_bench"
harness = false
[[bench]]
name = "meta_bench"
harness = false
[[bench]]
name = "quic_bench"
harness = false
[[example]]
name = "openrouter"
path = "examples/openrouter.rs"
[[example]]
name = "lean_agentic_streaming"
path = "examples/lean_agentic_streaming.rs"