[package]
edition = "2024"
rust-version = "1.96"
name = "proxima-lib"
version = "0.1.0"
build = false
include = [
"src/**",
"Cargo.toml",
"README.md",
"LICENSE*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A sans-IO core where everything is a Pipe — one async In -> Result<Out, Err> trait worn four ways (transform, source, sink, observe), composed into proxies, gateways, caches, codecs and telemetry pipelines. Config-driven, runtime-agnostic: the same pipe runs on the from-scratch Prime per-core runtime, on tokio, or on no_std bare metal."
homepage = "https://github.com/brianbruggeman/proxima"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/brianbruggeman/proxima"
[features]
amqp-client = [
"http-prime",
"dep:proxima-amqp",
"proxima-amqp/client",
]
amqp-listener = [
"dep:proxima-amqp",
"proxima-amqp/listen",
"tokio-runtime",
"tcp",
"any-listener",
]
any-listener = ["proxima-http/http-listener"]
c15-prime-hooks = []
default = [
"serve-prime",
"http2",
"http3",
"histogram",
"macros",
"recording",
"http-prime-deps",
]
dns-client = [
"http-prime",
"dep:proxima-dns",
"proxima-dns/client",
]
dns-listener = [
"dep:proxima-dns",
"proxima-dns/listen",
"tokio-runtime",
"tcp",
"any-listener",
]
dns-substrate = ["proxima-protocols/dns"]
dpdk = ["proxima-net/dpdk"]
grpc-framing = ["proxima-protocols/grpc_framing"]
h3 = ["dep:h3"]
h3-native-upstream = [
"http3",
"proxima-http/http3-native-upstream",
"dep:webpki-roots",
"serve-prime",
]
h3-part-source = [
"h3-native-upstream",
"proxima-http/http3-part-source",
]
h3-quinn = ["dep:h3-quinn"]
h3-upstream = [
"http3",
"http3-quinn-compat",
"dep:webpki-roots",
]
histogram = ["proxima-telemetry/histogram"]
http-hyper = [
"tokio",
"http1",
"dep:hyper",
"dep:hyper-util",
"tokio-runtime",
]
http-prime = ["http-prime-deps"]
http-prime-deps = [
"proxima-http/http1-stream-client",
"proxima-net/prime",
"runtime-prime-inbox-alloc",
"dep:proxima-tls",
"proxima-tls/futures-io",
]
http1 = [
"tokio",
"http1-native",
"proxima-http/http1",
]
http1-native = ["any-listener"]
http2 = ["proxima-http/http2-native"]
http3 = [
"quic-native",
"proxima-http/http3-native",
]
http3-quinn-compat = [
"http3",
"tokio",
"quic",
"proxima-http/http3-quinn-compat",
"dep:quinn-proto",
"dep:h3",
"dep:h3-quinn",
]
instrument-metrics = ["proxima-telemetry/instrument-metrics"]
io-uring = [
"dep:tokio-uring",
"dep:io-uring",
"dep:webpki-roots",
"proxima-http/http1-io-uring",
]
kafka-client = [
"http-prime",
"dep:proxima-kafka",
"proxima-kafka/client",
]
kafka-listener = [
"dep:proxima-kafka",
"proxima-kafka/listen",
"tokio-runtime",
"tcp",
"any-listener",
]
loom = []
lossless-backpressure = ["proxima-telemetry/lossless-backpressure"]
macros = [
"proxima-telemetry/macros",
"proxima-telemetry/std",
"proxima-telemetry/emit",
"dep:proxima-macros",
"recording",
]
memcached-client = [
"http-prime",
"dep:proxima-memcached",
"proxima-memcached/client",
]
memcached-listener = [
"dep:proxima-memcached",
"proxima-memcached/listen",
"tokio-runtime",
"tcp",
"any-listener",
]
mlx-gdn = []
mqtt-client = [
"http-prime",
"dep:proxima-mqtt",
"proxima-mqtt/client",
]
mqtt-listener = [
"dep:proxima-mqtt",
"proxima-mqtt/listen",
"tokio-runtime",
"tcp",
"any-listener",
]
otlp-grpc = [
"proxima-telemetry/otlp-grpc",
"otlp-http",
]
otlp-http = [
"proxima-telemetry/otlp-http",
"dep:prost",
]
pgwire = [
"dep:proxima-pgwire",
"proxima-pgwire/listen",
"any-listener",
]
pgwire-client = [
"http-prime",
"dep:proxima-pgwire",
"proxima-pgwire/client",
]
prime-tokio-compat = [
"runtime-prime-executor",
"runtime-prime-inbox-alloc",
"runtime-prime-reactor",
"runtime-prime-bgpool",
"dep:core_affinity",
"runtime-tokio",
"prime/prime-tokio-compat",
]
prime-tokio-compat-inverted = [
"prime-tokio-compat",
"prime/prime-tokio-compat-inverted",
]
producer-graph-config = []
protobuf-wire = ["proxima-protocols/protobuf_wire"]
proxima-onnx = ["dep:proxima-onnx"]
proxima-tensor = ["dep:proxima-tensor"]
quic = [
"tokio",
"tokio-runtime",
"dep:proxima-quic",
"dep:quinn",
"dep:rustls",
"dep:rcgen",
"proxima-quic/quinn-compat",
]
quic-native = [
"dep:proxima-quic",
"proxima-quic/native",
"dep:rustls",
"dep:rcgen",
]
quinn-compat = ["quic"]
quinn-proto = ["dep:quinn-proto"]
rayon = [
"dep:rayon",
"proxima-runtime/rayon",
"prime?/rayon",
]
recording = ["dep:proxima-recording"]
redis-client = [
"http-prime",
"dep:proxima-redis",
"proxima-redis/client",
]
redis-listener = [
"dep:proxima-redis",
"proxima-redis/listen",
"tokio-runtime",
"tcp",
"any-listener",
]
run-prime-tokio-compat = ["prime/prime-tokio-compat"]
runtime-prime = [
"dep:prime",
"prime/runtime-prime",
]
runtime-prime-bgpool = [
"runtime-prime",
"prime/runtime-prime-bgpool",
]
runtime-prime-bgpool-async = [
"runtime-prime-bgpool",
"prime/runtime-prime-bgpool-async",
]
runtime-prime-bgpool-par = [
"runtime-prime-bgpool",
"prime/runtime-prime-bgpool-par",
]
runtime-prime-bgpool-rayon = [
"runtime-prime-bgpool",
"dep:rayon",
"prime/runtime-prime-bgpool-rayon",
]
runtime-prime-config = [
"runtime-prime",
"prime/runtime-prime-config",
]
runtime-prime-executor = [
"runtime-prime-timer",
"prime/runtime-prime-executor",
]
runtime-prime-full = [
"proxima-primitives/runtime-prime-full",
"proxima-runtime/runtime-prime-full",
"prime?/runtime-prime-full",
"proxima-net/runtime-prime-full",
]
runtime-prime-inbox-alloc = [
"runtime-prime",
"prime/runtime-prime-inbox-alloc",
"proxima-net/runtime-prime-inbox-alloc",
]
runtime-prime-inbox-const = [
"runtime-prime",
"prime/runtime-prime-inbox-const",
"proxima-net/runtime-prime-inbox-const",
]
runtime-prime-inbox-dynamic = [
"runtime-prime",
"prime/runtime-prime-inbox-dynamic",
]
runtime-prime-reactor = [
"runtime-prime",
"prime/runtime-prime-reactor",
]
runtime-prime-timer = [
"runtime-prime",
"prime/runtime-prime-timer",
]
runtime-tokio = [
"tokio-runtime",
"proxima-runtime/tokio",
"proxima-net/tokio",
"dep:core_affinity",
"dep:flume",
"dep:tokio",
]
serve-prime = [
"runtime-prime-executor",
"runtime-prime-inbox-alloc",
"runtime-prime-reactor",
"runtime-prime-bgpool",
"http-prime-deps",
"proxima-test/test-prime",
]
simd-hex = []
simd-varint = []
sync-wrappers = ["dep:futures-timer"]
tcp = [
"proxima-listen/stream",
"proxima-protocols/json_framing-std",
]
test-prime = [
"test-support",
"runtime-prime-executor",
"runtime-prime-inbox-alloc",
"runtime-prime-reactor",
"runtime-prime-bgpool",
"proxima-test/test-prime",
]
test-prime-tokio-compat = [
"test-prime",
"prime-tokio-compat",
"proxima-test/test-prime-tokio-compat",
]
test-support = ["macros"]
test-support-tokio = [
"test-support",
"proxima-test/tokio-driver",
]
tls = [
"tokio",
"dep:proxima-tls",
"proxima-http/http1-tls",
"proxima-listen/tls",
"proxima-http/tls",
"dep:rustls",
"dep:hyper-rustls",
"dep:tokio-rustls",
"dep:rcgen",
]
tokio = [
"tokio-runtime",
"dep:tokio",
"dep:tokio-util",
"dep:h2",
"proxima-listen/tokio",
"proxima-tls?/tokio",
"proxima-net/tokio",
"proxima-primitives/runtime-tokio",
"proxima-protocols/proxy_protocol-tokio-runtime",
"proxima-protocols/jsonrpc",
"prime?/prime-tokio-compat",
"run-prime-tokio-compat",
"proxima-test/test-prime-tokio-compat",
"recording",
]
tokio-runtime = []
tokio-rustls = [
"tokio",
"dep:tokio-rustls",
]
tracing-init = [
"dep:tracing-subscriber",
"proxima-telemetry/tracing-init",
]
udp = []
unix = ["proxima-listen/stream"]
vm = [
"tokio",
"dep:proxima-vm",
]
websocket = [
"tcp",
"dep:async-tungstenite",
"proxima-http/websocket",
]
websocket-frame = ["proxima-protocols/websocket_frame"]
websocket-session = [
"websocket-upgrade",
"websocket-frame",
"proxima-protocols/websocket_frame-session",
]
websocket-upgrade = ["proxima-protocols/websocket_handshake"]
websocket-upstream = ["websocket"]
wire-to-weights-demo = [
"dep:proxima-onnx",
"dep:proxima-tensor",
"http1-native",
"serve-prime",
]
xdp = ["proxima-net/xdp"]
[lib]
name = "proxima"
path = "src/lib.rs"
[dependencies.arc-swap]
version = "1.7"
default-features = false
[dependencies.async-stream]
version = "0.3.6"
[dependencies.async-tungstenite]
version = "0.34.1"
features = [
"handshake",
"futures-03-sink",
"tokio-runtime",
]
optional = true
default-features = false
[dependencies.base64]
version = "0.22.1"
[dependencies.blake3]
version = "1.8.5"
[dependencies.bon]
version = "3.9.1"
[dependencies.bumpalo]
version = "3.16"
features = ["collections"]
default-features = false
[dependencies.bytes]
version = "1.7"
default-features = false
[dependencies.cel-interpreter]
version = "0.10.0"
[dependencies.conflaguration]
version = "2.0.0"
features = [
"derive",
"toml",
]
[dependencies.core_affinity]
version = "0.8.3"
optional = true
[dependencies.crossbeam-deque]
version = "0.8.6"
[dependencies.crossbeam-queue]
version = "0.3.12"
features = ["alloc"]
default-features = false
[dependencies.crossbeam-utils]
version = "0.8"
default-features = false
[dependencies.dashmap]
version = "6.1"
[dependencies.fastrand]
version = "2.4.1"
[dependencies.flume]
version = "0.12.0"
optional = true
[dependencies.futures]
version = "0.3"
features = ["executor"]
default-features = false
[dependencies.futures-timer]
version = "3"
optional = true
[dependencies.h2]
version = "0.4.14"
features = ["unstable"]
optional = true
[dependencies.h3]
version = "0.0.8"
optional = true
default-features = false
[dependencies.h3-quinn]
version = "0.0.10"
optional = true
default-features = false
[dependencies.hdrhistogram]
version = "7.5"
[dependencies.http]
version = "1.1"
[dependencies.http-body]
version = "1"
[dependencies.http-body-util]
version = "0.1"
[dependencies.httparse]
version = "1.10"
default-features = false
[dependencies.hyper]
version = "1.5"
features = [
"http1",
"http2",
"client",
"server",
]
optional = true
[dependencies.hyper-rustls]
version = "0.27.9"
features = [
"http1",
"http2",
"native-tokio",
"aws-lc-rs",
"webpki-tokio",
]
optional = true
default-features = false
[dependencies.hyper-util]
version = "0.1"
features = [
"tokio",
"client",
"client-legacy",
"server",
"server-auto",
]
optional = true
[dependencies.json5]
version = "0.4"
[dependencies.num_cpus]
version = "1.17.0"
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.portable-atomic]
version = "1.13"
default-features = false
[dependencies.postcard]
version = "1.1.3"
features = ["alloc"]
default-features = false
[dependencies.prime]
version = "0.1.0"
optional = true
package = "proxima-prime"
[dependencies.prost]
version = "0.14"
features = [
"std",
"derive",
]
optional = true
default-features = false
[dependencies.proxima-amqp]
version = "0.1.0"
optional = true
[dependencies.proxima-codec]
version = "0.1.0"
features = ["std"]
default-features = false
[dependencies.proxima-config]
version = "0.1.0"
features = [
"std",
"schema",
"schema-std",
"store",
"store-std",
"sugar",
]
default-features = false
[dependencies.proxima-core]
version = "0.1.0"
default-features = false
[dependencies.proxima-dns]
version = "0.1.0"
optional = true
default-features = false
[dependencies.proxima-http]
version = "0.1.0"
default-features = false
[dependencies.proxima-kafka]
version = "0.1.0"
optional = true
default-features = false
[dependencies.proxima-listen]
version = "0.1.0"
[dependencies.proxima-macros]
version = "0.1.0"
optional = true
[dependencies.proxima-memcached]
version = "0.1.0"
optional = true
default-features = false
[dependencies.proxima-mqtt]
version = "0.1.0"
optional = true
default-features = false
[dependencies.proxima-net]
version = "0.1.0"
features = ["std"]
default-features = false
[dependencies.proxima-onnx]
version = "0.1.0"
features = ["std"]
optional = true
default-features = false
[dependencies.proxima-patterns]
version = "0.1.0"
features = [
"balancer",
"middleware",
"control_plane",
"kv",
]
default-features = false
[dependencies.proxima-pgwire]
version = "0.1.0"
optional = true
[dependencies.proxima-primitives]
version = "0.1.0"
features = [
"std",
"async-mutex",
]
default-features = false
[dependencies.proxima-protocols]
version = "0.1.0"
features = ["proxy_protocol-std"]
default-features = false
[dependencies.proxima-quic]
version = "0.1.0"
optional = true
default-features = false
[dependencies.proxima-recording]
version = "0.1.0"
features = [
"pipe",
"replay",
]
optional = true
[dependencies.proxima-redis]
version = "0.1.0"
optional = true
[dependencies.proxima-runtime]
version = "0.1.0"
features = ["std"]
default-features = false
[dependencies.proxima-telemetry]
version = "0.1.0"
default-features = false
[dependencies.proxima-tensor]
version = "0.1.0"
features = ["std"]
optional = true
default-features = false
[dependencies.proxima-test]
version = "0.1.0"
[dependencies.proxima-tls]
version = "0.1.0"
optional = true
[dependencies.proxima-tokenizer]
version = "0.1.0"
features = ["gguf"]
[dependencies.proxima-vm]
version = "0.1.0"
features = ["std"]
optional = true
default-features = false
[dependencies.quick-xml]
version = "0.41"
features = ["serialize"]
[dependencies.quinn]
version = "0.11.9"
features = [
"rustls-aws-lc-rs",
"runtime-tokio",
]
optional = true
default-features = false
[dependencies.quinn-proto]
version = "0.11.14"
features = ["rustls-aws-lc-rs"]
optional = true
default-features = false
[dependencies.rand]
version = "0.10.1"
[dependencies.rayon]
version = "1.12.0"
optional = true
[dependencies.rcgen]
version = "0.14.7"
features = [
"aws_lc_rs",
"pem",
]
optional = true
default-features = false
[dependencies.regex]
version = "1.12.3"
[dependencies.ron]
version = "0.8"
[dependencies.rustc-hash]
version = "2.1.2"
default-features = false
[dependencies.rustls]
version = "0.23.40"
features = [
"std",
"aws_lc_rs",
"tls12",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
default-features = false
[dependencies.serde_json]
version = "1"
features = ["alloc"]
default-features = false
[dependencies.serde_norway]
version = "0.9.42"
[dependencies.simd-json]
version = "0.17"
[dependencies.smallvec]
version = "1.15.1"
default-features = false
[dependencies.socket2]
version = "0.5"
features = ["all"]
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.thread_local]
version = "1.1.9"
[dependencies.time]
version = "0.3.47"
features = [
"formatting",
"parsing",
"macros",
"serde",
"serde-human-readable",
]
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"net",
"sync",
"time",
"signal",
"io-util",
"fs",
"io-std",
"process",
]
optional = true
[dependencies.tokio-rustls]
version = "0.26.4"
features = [
"aws_lc_rs",
"tls12",
]
optional = true
default-features = false
[dependencies.tokio-util]
version = "0.7.18"
features = [
"rt",
"compat",
"io",
]
optional = true
default-features = false
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
default-features = false
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.ulid]
version = "1.2.1"
features = ["serde"]
[dependencies.url]
version = "2.5.8"
[dependencies.webpki-roots]
version = "1"
optional = true
[dependencies.xxhash-rust]
version = "0.8"
features = ["xxh3"]
[dev-dependencies.amq-protocol]
version = "7"
[dev-dependencies.criterion]
version = "0.8.2"
features = [
"html_reports",
"async_tokio",
]
default-features = false
[dev-dependencies.faster-hex]
version = "0.10.0"
[dev-dependencies.flume]
version = "0.12.0"
[dev-dependencies.hex]
version = "0.4.3"
[dev-dependencies.hickory-proto]
version = "0.26.1"
default-features = false
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.kafka-protocol]
version = "0.17"
default-features = false
[dev-dependencies.libtest-mimic]
version = "0.8.2"
[dev-dependencies.log]
version = "0.4.29"
[dev-dependencies.loom]
version = "0.7"
[dev-dependencies.memmap2]
version = "0.9.11"
[dev-dependencies.metrics]
version = "0.24.6"
[dev-dependencies.mqttbytes]
version = "0.6"
[dev-dependencies.once_cell]
version = "1.21.4"
[dev-dependencies.opentelemetry]
version = "0.32.0"
features = [
"logs",
"metrics",
]
[dev-dependencies.opentelemetry-proto]
version = "0.32.0"
features = [
"gen-tonic-messages",
"trace",
"logs",
"metrics",
]
[dev-dependencies.opentelemetry_sdk]
version = "0.32.0"
features = [
"testing",
"trace",
]
[dev-dependencies.pingora-core]
version = "0.8.0"
default-features = false
[dev-dependencies.pingora-http]
version = "0.8.0"
default-features = false
[dev-dependencies.prime]
version = "0.1.0"
features = ["runtime-prime-virtual-clock"]
package = "proxima-prime"
[dev-dependencies.proc-macro-crate]
version = "3.5.0"
[dev-dependencies.proc-macro2]
version = "1"
[dev-dependencies.prometheus]
version = "0.14.0"
[dev-dependencies.prost]
version = "0.14"
features = [
"std",
"derive",
]
default-features = false
[dev-dependencies.proxima-clock]
version = "0.1.0"
default-features = false
[dev-dependencies.proxima-codec]
version = "0.1.0"
features = ["alloc"]
default-features = false
[dev-dependencies.proxima-gguf]
version = "0.1.0"
[dev-dependencies.proxima-macros]
version = "0.1.0"
[dev-dependencies.proxima-primitives]
version = "0.1.0"
features = ["test-support"]
default-features = false
[dev-dependencies.proxima-protocols]
version = "0.1.0"
features = [
"websocket_frame-codec-trait",
"http1_codec-codec-trait",
]
default-features = false
[dev-dependencies.proxima-tensor]
version = "0.1.0"
features = ["std"]
default-features = false
[dev-dependencies.proxima-tokenizer]
version = "0.1.0"
features = ["gguf"]
default-features = false
[dev-dependencies.quote]
version = "1"
[dev-dependencies.rand]
version = "0.10.1"
[dev-dependencies.redis-protocol]
version = "6.0.0"
[dev-dependencies.serde_json]
version = "1.0.151"
features = [
"alloc",
"float_roundtrip",
]
default-features = false
[dev-dependencies.slog]
version = "2.7"
[dev-dependencies.syn]
version = "2"
features = ["full"]
[dev-dependencies.temp-env]
version = "0.3.6"
features = ["async_closure"]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dev-dependencies.trybuild]
version = "1"
[dev-dependencies.tungstenite]
version = "0.24"
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.4"
features = ["wasm_js"]
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_wasm_03]
version = "0.3"
features = ["wasm_js"]
package = "getrandom"
[target.'cfg(target_os = "linux")'.dependencies.io-uring]
version = "0.7.12"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.tokio-uring]
version = "0.5"
optional = true
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(unix)".dependencies.proxima-process]
version = "0.1.0"
features = ["std"]
default-features = false
[lints.clippy]
expect_used = "deny"
manual_async_fn = "allow"
unwrap_used = "deny"
[lints.rust]
warnings = "deny"
[lints.rust.unexpected_cfgs]
level = "deny"
priority = 0
check-cfg = ["cfg(tutorial_gate)"]
[profile.bench]
debug = 2
inherits = "release"
[profile.gate]
lto = false
codegen-units = 16
debug = 0
debug-assertions = true
panic = "unwind"
overflow-checks = true
incremental = true
inherits = "release"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"