# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.
[package]
edition = "2024"
rust-version = "1.96"
name = "proxima-primitives"
version = "0.1.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The pipe algebra itself: the Pipe trait — an async In -> Result<Out, Err> that becomes a transform, source, sink or observe by choice of types — plus its three tier siblings (SendPipe, UnpinPipe, UnpinSendPipe), Handler, SourcePipe, the payload types Carry, ResponseStream and RequestStream (buffered bodies are plain Bytes), HeaderList, the sans-IO byte-stream traits, runtime-agnostic concurrency primitives, and the Replay/GenericStream transport seam. Everything else in proxima composes what is defined here."
homepage = "https://github.com/brianbruggeman/proxima"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/brianbruggeman/proxima"
[features]
alloc = [
"proxima-core/alloc",
"proxima-core/time-alloc",
"dep:proxima-runtime",
"proxima-runtime/alloc",
"dep:event-listener",
"dep:async-lock",
]
async-mutex = []
atomic-permits = []
blocking = [
"dep:atomic-wait",
"dep:lock_api",
]
bon = ["dep:bon"]
config = [
"std",
"dep:conflaguration",
]
conflaguration = ["dep:conflaguration"]
default = ["std"]
fan-concurrent = ["alloc"]
io-async = ["proxima-core/io-async"]
io-bridge = [
"std",
"dep:tokio-util",
]
part-source = []
runtime-prime-full = []
runtime-shaped-mutex = [
"std",
"dep:proxima-runtime",
"proxima-runtime/tokio",
]
runtime-tokio = [
"std",
"dep:tokio",
]
std = [
"alloc",
"proxima-core/std",
"proxima-core/registry",
"proxima-core/live",
"proxima-core/time-std",
"proxima-core/time-driver-std-thread",
"bytes/std",
"futures/std",
"serde/std",
"serde_json/std",
"dep:arc-swap",
"dep:tracing",
"futures/executor",
"fastrand/std",
"dep:proxima-config",
"proxima-config/schema-std",
"rustc-hash/std",
"dep:regex",
"dep:bon",
"dep:conflaguration",
"conflaguration/toml",
"dep:arrayvec",
"dep:async-broadcast",
"dep:async-channel",
"dep:parking_lot",
]
test-support = [
"std",
"proxima-core/time-driver-mock",
]
[lib]
name = "proxima_primitives"
path = "src/lib.rs"
[[test]]
name = "pipe_macro_boxed"
path = "tests/pipe_macro_boxed.rs"
[[test]]
name = "pipe_part_tier3_no_std"
path = "tests/pipe_part_tier3_no_std.rs"
[[test]]
name = "semaphore_alloc"
path = "tests/semaphore_alloc.rs"
[[test]]
name = "stream_datagram_batch_zero_alloc"
path = "tests/stream_datagram_batch_zero_alloc.rs"
[[bench]]
name = "atomic_permits"
path = "benches/atomic_permits.rs"
harness = false
required-features = ["atomic-permits"]
[[bench]]
name = "pipe_bench_bucket_table"
path = "benches/pipe_bench_bucket_table.rs"
harness = false
[[bench]]
name = "pipe_bench_http_construction"
path = "benches/pipe_bench_http_construction.rs"
harness = false
[[bench]]
name = "pipe_bounded_batch_parity"
path = "benches/pipe_bounded_batch_parity.rs"
harness = false
[[bench]]
name = "pipe_fanin_merge"
path = "benches/pipe_fanin_merge.rs"
harness = false
[[bench]]
name = "pipe_fanout_parity"
path = "benches/pipe_fanout_parity.rs"
harness = false
[[bench]]
name = "pipe_sink_perop"
path = "benches/pipe_sink_perop.rs"
harness = false
[[bench]]
name = "pipe_sink_zerocopy"
path = "benches/pipe_sink_zerocopy.rs"
harness = false
[[bench]]
name = "stream_bench_datagram_batch"
path = "benches/stream_bench_datagram_batch.rs"
harness = false
[[bench]]
name = "sync_bench_runtime_shaped"
path = "benches/sync_bench_runtime_shaped.rs"
harness = false
required-features = ["runtime-shaped-mutex"]
[dependencies.arc-swap]
version = "1.7"
optional = true
default-features = false
[dependencies.arrayvec]
version = "0.7.6"
optional = true
default-features = false
[dependencies.async-broadcast]
version = "0.7"
optional = true
default-features = false
[dependencies.async-channel]
version = "2"
optional = true
default-features = false
[dependencies.async-lock]
version = "3.4"
optional = true
default-features = false
[dependencies.atomic-wait]
version = "1.1"
optional = true
[dependencies.bon]
version = "3.9.1"
optional = true
[dependencies.bytes]
version = "1.7"
default-features = false
[dependencies.conflaguration]
version = "2.0.0"
features = [
"derive",
"toml",
]
optional = true
[dependencies.crossbeam-queue]
version = "0.3.12"
features = ["alloc"]
default-features = false
[dependencies.event-listener]
version = "5.4"
optional = true
default-features = false
[dependencies.fastrand]
version = "2.4.1"
default-features = false
[dependencies.futures]
version = "0.3"
features = [
"alloc",
"async-await",
]
default-features = false
[dependencies.heapless]
version = "0.9.3"
default-features = false
[dependencies.lock_api]
version = "0.4.14"
optional = true
[dependencies.parking_lot]
version = "0.12.5"
optional = true
[dependencies.portable-atomic]
version = "1.13"
features = ["fallback"]
default-features = false
[dependencies.proxima-config]
version = "0.1.0"
optional = true
default-features = false
[dependencies.proxima-core]
version = "0.1.0"
default-features = false
[dependencies.proxima-runtime]
version = "0.1.0"
optional = true
default-features = false
[dependencies.regex]
version = "1.12.3"
optional = true
[dependencies.rustc-hash]
version = "2.1.2"
default-features = false
[dependencies.serde]
version = "1"
features = [
"derive",
"alloc",
]
default-features = false
[dependencies.serde_json]
version = "1"
features = ["alloc"]
default-features = false
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.tokio-util]
version = "0.7.18"
features = [
"io",
"compat",
]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
optional = true
default-features = false
[dev-dependencies.arrayvec]
version = "0.7.6"
default-features = false
[dev-dependencies.async-lock]
version = "3.4"
default-features = false
[dev-dependencies.criterion]
version = "0.8.2"
default-features = false
[dev-dependencies.dashmap]
version = "6.1"
[dev-dependencies.futures]
version = "0.3"
features = [
"std",
"executor",
"thread-pool",
]
default-features = false
[dev-dependencies.proxima-core]
version = "0.1.0"
features = [
"time-driver-mock",
"std",
"time-driver-std-thread",
]
default-features = false
[dev-dependencies.proxima-macros]
version = "0.1.0"
[dev-dependencies.rand]
version = "0.10.1"
[dev-dependencies.smallvec]
version = "1.15.1"
default-features = false
[build-dependencies.proxima-build]
version = "0.1.0"
[build-dependencies.toml]
version = "0.8"
[target."cfg(loom)".dependencies.async-lock]
version = "3.4"
features = ["loom"]
default-features = false
[target."cfg(loom)".dependencies.event-listener]
version = "5.4"
features = ["loom"]
default-features = false
[target."cfg(loom)".dependencies.loom]
version = "0.7"
features = ["futures"]
[target."cfg(not(loom))".dependencies.tokio]
version = "1"
features = [
"macros",
"rt",
]
optional = true
[target."cfg(not(loom))".dev-dependencies.proxima-runtime]
version = "0.1.0"
features = ["tokio"]
default-features = false
[target."cfg(not(loom))".dev-dependencies.tokio]
version = "1"
features = [
"macros",
"sync",
"rt",
"rt-multi-thread",
"time",
"test-util",
]
[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)"]