[package]
edition = "2024"
rust-version = "1.85"
name = "fredis"
version = "10.1.0"
authors = ["x-at-01 <x-at-01@googlegroups.com>"]
build = false
exclude = [
"tests",
".circleci",
"bin",
".github",
"doc",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An async client for Redis and Valkey."
homepage = "https://github.com/webc-site/fredis"
readme = "README.md"
keywords = [
"redis",
"valkey",
"cluster",
"sentinel",
]
categories = [
"asynchronous",
"database",
"web-programming",
]
license = "MIT"
repository = "https://github.com/webc-site/fredis"
[package.metadata.docs.rs]
features = [
"i-all",
"i-redis-stack",
"i-hexpire",
"transactions",
"blocking-encoding",
"dns",
"metrics",
"mocks",
"monitor",
"replicas",
"sentinel-auth",
"sentinel-client",
"serde-json",
"subscriber-client",
"unix-sockets",
"enable-rustls",
"enable-native-tls",
"full-tracing",
"credential-provider",
"dynamic-pool",
"tcp-user-timeouts",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
blocking-encoding = ["tokio/rt-multi-thread"]
cloudflare = [
"dep:worker",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"getrandom/wasm_js",
"pin-project",
"fred-macros/enabled",
"oneshot/async",
"futures-lite",
]
credential-provider = []
custom-reconnect-errors = []
debug-ids = []
default = [
"transactions",
"i-std",
]
default-nil-types = []
dns = ["hickory-resolver"]
dynamic-pool = ["metrics"]
enable-native-tls = [
"native-tls",
"tokio-native-tls",
]
enable-rustls = [
"rustls",
"tokio-rustls",
"rustls-native-certs",
"rustls/std",
"tokio-rustls/logging",
"tokio-rustls/tls12",
"tokio-rustls/aws_lc_rs",
]
enable-rustls-ring = [
"rustls",
"tokio-rustls",
"rustls-native-certs",
"rustls/std",
"tokio-rustls/logging",
"tokio-rustls/tls12",
"tokio-rustls/ring",
]
full-tracing = ["partial-tracing"]
glommio = [
"dep:glommio",
"futures-io",
"pin-project",
"fred-macros/enabled",
"oneshot/async",
"futures-lite",
]
i-acl = []
i-all = [
"i-acl",
"i-client",
"i-cluster",
"i-config",
"i-geo",
"i-hashes",
"i-hyperloglog",
"i-keys",
"i-lists",
"i-scripts",
"i-memory",
"i-pubsub",
"i-server",
"i-streams",
"i-tracking",
"i-sorted-sets",
"i-slowlog",
"i-sets",
]
i-client = []
i-cluster = []
i-config = []
i-geo = ["i-sorted-sets"]
i-hashes = []
i-hexpire = []
i-hyperloglog = []
i-keys = []
i-lists = []
i-memory = []
i-pubsub = []
i-redis-json = ["serde-json"]
i-redis-stack = [
"i-redis-json",
"i-time-series",
"i-redisearch",
]
i-redisearch = [
"i-sorted-sets",
"i-geo",
"i-hashes",
]
i-scripts = []
i-server = []
i-sets = []
i-slowlog = []
i-sorted-sets = []
i-std = [
"i-hashes",
"i-keys",
"i-lists",
"i-sets",
"i-streams",
"i-pubsub",
"i-sorted-sets",
"i-server",
]
i-streams = []
i-time-series = []
i-tracking = [
"i-client",
"i-pubsub",
]
metrics = []
mocks = ["glob-match"]
monitor = ["nom"]
monoio = [
"dep:monoio",
"monoio-codec",
"fred-macros/enabled",
"oneshot/async",
"futures-lite",
"local-sync",
]
monoio-native-tls = ["dep:monoio-native-tls"]
monoio-rustls = ["dep:monoio-rustls"]
network-logs = []
partial-tracing = [
"tracing",
"tracing-futures",
]
replicas = []
sentinel-auth = []
sentinel-client = []
serde-json = ["serde_json"]
smol = []
subscriber-client = ["i-pubsub"]
tcp-user-timeouts = []
transactions = []
trust-dns-resolver = ["dep:trust-dns-resolver"]
unix-sockets = []
vendored-openssl = [
"enable-native-tls",
"native-tls/vendored",
]
[lib]
name = "fredis"
path = "src/lib.rs"
test = true
doc = true
[[example]]
name = "actix"
path = "examples/actix.rs"
[[example]]
name = "axum"
path = "examples/axum.rs"
required-features = ["subscriber-client"]
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "blocking"
path = "examples/blocking.rs"
[[example]]
name = "client_tracking"
path = "examples/client_tracking.rs"
required-features = [
"i-tracking",
"i-std",
]
[[example]]
name = "custom"
path = "examples/custom.rs"
[[example]]
name = "dns"
path = "examples/dns.rs"
required-features = ["dns"]
[[example]]
name = "dynamic_pool"
path = "examples/dynamic_pool.rs"
required-features = ["dynamic-pool"]
[[example]]
name = "events"
path = "examples/events.rs"
required-features = [
"tokio-stream/sync",
"i-std",
]
[[example]]
name = "glommio"
path = "examples/glommio.rs"
required-features = [
"glommio",
"i-std",
]
[[example]]
name = "keyspace"
path = "examples/keyspace.rs"
[[example]]
name = "lua"
path = "examples/lua.rs"
required-features = [
"sha-1",
"i-scripts",
]
[[example]]
name = "misc"
path = "examples/misc.rs"
required-features = ["i-all"]
[[example]]
name = "monitor"
path = "examples/monitor.rs"
required-features = ["monitor"]
[[example]]
name = "pipeline"
path = "examples/pipeline.rs"
[[example]]
name = "pool"
path = "examples/pool.rs"
[[example]]
name = "pubsub"
path = "examples/pubsub.rs"
required-features = ["subscriber-client"]
[[example]]
name = "redis_json"
path = "examples/redis_json.rs"
required-features = ["i-redis-json"]
[[example]]
name = "replicas"
path = "examples/replicas.rs"
required-features = [
"i-std",
"i-cluster",
"replicas",
]
[[example]]
name = "scan"
path = "examples/scan.rs"
required-features = ["i-all"]
[[example]]
name = "sentinel"
path = "examples/sentinel.rs"
[[example]]
name = "serde_json"
path = "examples/serde_json.rs"
required-features = ["serde-json"]
[[example]]
name = "streams"
path = "examples/streams.rs"
[[example]]
name = "tls"
path = "examples/tls.rs"
[[example]]
name = "transactions"
path = "examples/transactions.rs"
required-features = [
"transactions",
"i-std",
]
[dependencies.arc-swap]
version = "1.9"
[dependencies.async-trait]
version = "0.1"
[dependencies.bytes]
version = "1.12"
[dependencies.bytes-utils]
version = "0.1.4"
[dependencies.float-cmp]
version = "0.10"
[dependencies.fred-macros]
version = "0.1"
[dependencies.futures]
version = "0.3"
features = ["std"]
[dependencies.futures-io]
version = "0.3"
optional = true
[dependencies.futures-lite]
version = "2.6"
optional = true
[dependencies.glob-match]
version = "0.2.1"
optional = true
[dependencies.glommio]
version = "0.9.0"
optional = true
[dependencies.hickory-resolver]
version = "0.25.2"
features = ["tokio"]
optional = true
[dependencies.local-sync]
version = "0.1.1"
optional = true
[dependencies.log]
version = "0.4"
[dependencies.monoio]
version = "0.2.4"
features = ["bytes"]
optional = true
[dependencies.monoio-codec]
version = "0.3.4"
optional = true
[dependencies.monoio-native-tls]
version = "0.4.0"
optional = true
[dependencies.monoio-rustls]
version = "0.4.0"
optional = true
[dependencies.native-tls]
version = "0.2"
optional = true
[dependencies.nom]
version = "8.0"
optional = true
[dependencies.oneshot]
version = "0.2.1"
features = ["async"]
optional = true
default-features = false
[dependencies.parking_lot]
version = "0.12"
[dependencies.pin-project]
version = "1.1.13"
optional = true
[dependencies.rand]
version = "0.10"
[dependencies.redis-protocol]
version = "6.0.0"
features = [
"resp2",
"resp3",
"bytes",
]
[dependencies.rustls]
version = "0.23"
optional = true
default-features = false
[dependencies.rustls-native-certs]
version = "0.8"
optional = true
[dependencies.semver]
version = "1.0"
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.sha-1]
version = "0.10"
optional = true
[dependencies.tokio]
version = "1.53"
features = [
"sync",
"macros",
"io-util",
]
default-features = false
[dependencies.tokio-native-tls]
version = "0.3"
optional = true
[dependencies.tokio-rustls]
version = "0.26"
optional = true
default-features = false
[dependencies.tokio-stream]
version = "0.1"
[dependencies.tokio-util]
version = "0.7"
features = ["codec"]
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-futures]
version = "0.2"
optional = true
[dependencies.trust-dns-resolver]
version = "0.23"
features = ["tokio"]
optional = true
[dependencies.url]
version = "2.5"
[dependencies.urlencoding]
version = "2.1"
[dev-dependencies.actix-web]
version = "4.12.1"
[dev-dependencies.axum]
version = "0.8"
features = ["macros"]
[dev-dependencies.maplit]
version = "1.0"
[dev-dependencies.pretty_env_logger]
version = "0.5"
[dev-dependencies.serde]
version = "1.0"
features = ["derive"]
[dev-dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.socket2]
version = "0.6"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.53"
features = [
"net",
"rt",
"rt-multi-thread",
"time",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.4"
features = ["wasm_js"]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.worker]
version = "0.8"
optional = true