[package]
edition = "2024"
rust-version = "1.88"
name = "jacques"
version = "0.1.3"
authors = ["trbritt"]
build = false
exclude = [
".github/*",
"benches/*",
"examples/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance lock-free MPMC queues with horizontal scaling and zero-allocation operation"
homepage = "https://github.com/trbritt/jacques"
documentation = "https://docs.rs/jacques"
readme = "README.md"
keywords = [
"queue",
"mpmc",
"lock-free",
"concurrent",
"lockfree",
]
categories = [
"concurrency",
"data-structures",
"no-std",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/trbritt/jacques"
[package.metadata.docs.rs]
rustdoc-args = [
"--cfg",
"docsrs",
]
rustc-args = [
"-C",
"target-cpu=x86-64-v2",
]
[features]
default = []
dev-profiling = ["pprof"]
jemalloc = ["tikv-jemallocator"]
[lib]
name = "jacques"
path = "src/lib.rs"
[dependencies.crossbeam-utils]
version = "0.8.21"
default-features = false
[dependencies.portable-atomic]
version = "1.11.1"
default-features = false
[dependencies.pprof]
version = "0.13.0"
features = ["flamegraph"]
optional = true
[dependencies.thiserror]
version = "2.0.16"
default-features = false
[dev-dependencies.criterion]
version = "0.5"
features = [
"html_reports",
"async_tokio",
]
[dev-dependencies.tokio]
version = "1.47.1"
features = [
"sync",
"rt-multi-thread",
"macros",
"time",
]
[target.'cfg(not(target_env = "msvc"))'.dependencies.tikv-jemallocator]
version = "0.6"
optional = true
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.cargo]
level = "deny"
priority = -1
[lints.clippy.nursery]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1
[lints.rust]
dead_code = "deny"
missing_docs = "deny"
unreachable_code = "deny"
unsafe_code = "allow"
unused_imports = "deny"
unused_must_use = "deny"
unused_variables = "deny"
[profile.bench]
debug = 2
[profile.maxperf]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 0
debug-assertions = false
rpath = false
panic = "abort"
overflow-checks = false
incremental = false
inherits = "release"
strip = "symbols"