[package]
name = "fast-cache"
version.workspace = true
edition.workspace = true
authors.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Embedded-first thread-per-core in-memory cache with optional Redis-compatible server"
documentation = "https://docs.rs/fast-cache"
keywords = ["cache", "redis", "kv", "storage", "wal"]
categories = ["caching", "database-implementations"]
readme = "README.md"
autobins = false
autotests = false
autobenches = false
exclude = [
"bench/**",
"fuzz/**",
"tests/**",
"src/bin/bench_*.rs",
".DS_Store",
]
[features]
default = ["embedded", "sharded"]
embedded = []
sharded = ["embedded"]
server = [
"sharded",
"dep:bytes-handoff",
"dep:clap",
"dep:flume",
"dep:socket2",
"dep:tracing-subscriber",
]
monoio = ["server", "dep:monoio", "bytes-handoff?/monoio"]
cuda = ["sharded"]
telemetry = ["embedded"]
fast-point-map = []
shared-parking-lot-lock = []
embedded-read-biased-lock = []
unsafe = []
[dependencies]
bytes = "1"
bytes-handoff = { version = "1.2.0", optional = true }
clap = { workspace = true, optional = true }
core_affinity = { workspace = true }
crc32fast = { workspace = true }
crossbeam-channel = { workspace = true }
crossbeam-utils = { workspace = true }
fast-telemetry = { workspace = true }
hashbrown = { workspace = true }
itoa = "1"
log = { workspace = true }
libc = { workspace = true }
lz4_flex = { workspace = true }
memchr = "2"
parking_lot = { workspace = true }
rblock = { workspace = true }
serde = { workspace = true }
smallvec = "1"
socket2 = { version = "0.5", features = ["all"], optional = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }
toml = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true, optional = true }
xxhash-rust = { workspace = true }
zstd = { workspace = true }
[dev-dependencies]
tempfile = { workspace = true }
[dependencies.flume]
version = "0.11"
default-features = false
features = ["async"]
optional = true
[target.'cfg(target_os = "linux")'.dependencies]
monoio = { version = "0.2", optional = true }
[[bin]]
name = "fast-cache-server"
required-features = ["server"]