[package]
edition = "2024"
rust-version = "1.91.1"
name = "questdb-rs"
version = "7.0.0"
authors = ["Vlad Ilyushchenko <vlad@questdb.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "QuestDB Client Library for Rust"
homepage = "https://questdb.com/"
readme = "README.md"
keywords = [
"questdb",
"ilp",
"client-library",
]
categories = ["database"]
license = "Apache-2.0"
repository = "https://github.com/questdb/c-questdb-client"
[package.metadata.docs.rs]
features = [
"almost-all-features",
"arrow",
"polars",
]
[features]
_arrow = [
"dep:arrow",
"dep:aligned-vec",
"dep:bytes",
]
_egress = ["dep:bytes"]
_keystore-roots = [
"dep:jks",
"dep:p12-keystore",
]
_polars = [
"dep:polars",
"dep:polars-arrow",
]
_sender-http = []
_sender-qwp-udp = []
_sender-qwp-ws = []
_sender-tcp = []
_sync-sender = []
almost-all-features = [
"sync-sender",
"sync-sender-qwp-udp",
"sync-reader-qwp-ws",
"sync-reader-zstd",
"tls-webpki-certs",
"tls-native-certs",
"ring-crypto",
"insecure-skip-verify",
"json-tests",
"chrono-timestamp",
"ndarray",
"rust_decimal",
"bigdecimal",
]
arrow = [
"arrow-ingress",
"arrow-egress",
]
arrow-egress = [
"_arrow",
"sync-reader-qwp-ws",
"arrow?/chrono-tz",
]
arrow-ingress = [
"_arrow",
"sync-sender-qwp-ws",
]
aws-lc-crypto = [
"dep:aws-lc-rs",
"rustls/aws-lc-rs",
]
bigdecimal = ["dep:bigdecimal"]
chrono-timestamp = ["dep:chrono"]
default = [
"sync-sender",
"sync-reader",
"tls-webpki-certs",
"ring-crypto",
]
ffi-support = ["sync-sender-qwp-ws"]
insecure-skip-verify = []
json-tests = ["bigdecimal"]
live-server-tests = [
"sync-reader-qwp-ws",
"sync-reader-zstd",
"sync-sender-http",
"sync-sender-qwp-ws",
]
ndarray = ["dep:ndarray"]
polars = [
"polars-ingress",
"polars-egress",
]
polars-egress = [
"_polars",
"arrow-egress",
]
polars-ingress = [
"_polars",
"arrow-ingress",
]
ring-crypto = [
"dep:ring",
"rustls/ring",
]
rust_decimal = ["dep:rust_decimal"]
sync-reader = [
"sync-reader-qwp-ws",
"sync-reader-zstd",
]
sync-reader-qwp-ws = [
"_egress",
"_keystore-roots",
]
sync-reader-zstd = [
"_egress",
"dep:zstd",
]
sync-sender = [
"sync-sender-tcp",
"sync-sender-http",
"sync-sender-qwp-ws",
]
sync-sender-http = [
"_sync-sender",
"_sender-http",
"dep:ureq",
"dep:serde_json",
"dep:rand",
]
sync-sender-qwp-udp = [
"_sync-sender",
"_sender-qwp-udp",
"dep:socket2",
]
sync-sender-qwp-ws = [
"_sync-sender",
"_sender-qwp-ws",
"dep:rand",
"dep:socket2",
"_keystore-roots",
]
sync-sender-tcp = [
"_sync-sender",
"_sender-tcp",
"dep:socket2",
]
tls-key-log = []
tls-native-certs = ["dep:rustls-native-certs"]
tls-webpki-certs = ["dep:webpki-roots"]
[lib]
name = "questdb"
crate-type = ["lib"]
path = "src/lib.rs"
[[example]]
name = "auth"
path = "examples/auth.rs"
required-features = [
"sync-sender-tcp",
"chrono-timestamp",
]
[[example]]
name = "auth_tls"
path = "examples/auth_tls.rs"
required-features = [
"sync-sender-tcp",
"chrono-timestamp",
]
[[example]]
name = "basic"
path = "examples/basic.rs"
required-features = [
"sync-sender-tcp",
"chrono-timestamp",
"ndarray",
]
[[example]]
name = "from_conf"
path = "examples/from_conf.rs"
required-features = ["sync-sender-tcp"]
[[example]]
name = "from_env"
path = "examples/from_env.rs"
required-features = ["_sync-sender"]
[[example]]
name = "http"
path = "examples/http.rs"
required-features = [
"sync-sender-http",
"ndarray",
"rust_decimal",
]
[[example]]
name = "polars"
path = "examples/polars.rs"
required-features = [
"polars",
"sync-sender-qwp-ws",
]
[[example]]
name = "protocol_version"
path = "examples/protocol_version.rs"
required-features = [
"sync-sender-http",
"ndarray",
"bigdecimal",
]
[[example]]
name = "qwp_egress_failover"
path = "examples/qwp_egress_failover.rs"
required-features = ["sync-reader-qwp-ws"]
[[example]]
name = "qwp_egress_hits"
path = "examples/qwp_egress_hits.rs"
required-features = ["sync-reader-qwp-ws"]
[[example]]
name = "qwp_egress_latency"
path = "examples/qwp_egress_latency.rs"
required-features = ["sync-reader-qwp-ws"]
[[example]]
name = "qwp_egress_polars"
path = "examples/qwp_egress_polars.rs"
required-features = [
"polars",
"sync-reader-qwp-ws",
"sync-sender-http",
]
[[example]]
name = "qwp_egress_read"
path = "examples/qwp_egress_read.rs"
required-features = [
"sync-reader-qwp-ws",
"sync-sender-http",
]
[[example]]
name = "qwp_egress_read_wide"
path = "examples/qwp_egress_read_wide.rs"
required-features = [
"sync-reader-qwp-ws",
"sync-sender-http",
]
[[example]]
name = "qwp_ingress_polars"
path = "examples/qwp_ingress_polars.rs"
required-features = [
"polars",
"sync-sender-qwp-ws",
"sync-sender-http",
]
[[example]]
name = "qwp_ingress_row"
path = "examples/qwp_ingress_row.rs"
required-features = [
"sync-sender-qwp-ws",
"sync-sender-http",
]
[[example]]
name = "qwp_ws_chunk_and_query"
path = "examples/qwp_ws_chunk_and_query.rs"
required-features = [
"sync-sender-qwp-ws",
"sync-reader-qwp-ws",
]
[[example]]
name = "qwp_ws_l1_quotes"
path = "examples/qwp_ws_l1_quotes.rs"
required-features = ["sync-sender-qwp-ws"]
[[example]]
name = "qwp_ws_unified_sfa_bench"
path = "examples/qwp_ws_unified_sfa_bench.rs"
required-features = [
"sync-sender-qwp-ws",
"arrow-ingress",
]
[[test]]
name = "egress_failover"
path = "tests/egress_failover.rs"
[[test]]
name = "egress_live_auth"
path = "tests/egress_live_auth.rs"
[[test]]
name = "egress_live_server"
path = "tests/egress_live_server.rs"
[[test]]
name = "egress_live_server_alter_fuzz"
path = "tests/egress_live_server_alter_fuzz.rs"
[[test]]
name = "egress_live_server_bind_fuzz"
path = "tests/egress_live_server_bind_fuzz.rs"
[[test]]
name = "egress_live_server_fragmentation_fuzz"
path = "tests/egress_live_server_fragmentation_fuzz.rs"
[[test]]
name = "egress_live_server_fuzz"
path = "tests/egress_live_server_fuzz.rs"
[[test]]
name = "egress_tls"
path = "tests/egress_tls.rs"
[[test]]
name = "qwp_egress_bounds_fuzz"
path = "tests/qwp_egress_bounds_fuzz.rs"
[[test]]
name = "qwp_egress_fragmentation_fuzz"
path = "tests/qwp_egress_fragmentation_fuzz.rs"
[[bench]]
name = "column_sender"
path = "benches/column_sender.rs"
harness = false
required-features = ["sync-sender-qwp-ws"]
[[bench]]
name = "decoder"
path = "benches/decoder.rs"
harness = false
required-features = ["sync-reader-qwp-ws"]
[dependencies.aligned-vec]
version = "0.6"
optional = true
[dependencies.arrow]
version = ">=58, <60"
features = ["ffi"]
optional = true
default-features = false
[dependencies.aws-lc-rs]
version = "1.13"
optional = true
[dependencies.base64ct]
version = "1.7"
features = ["alloc"]
[dependencies.bigdecimal]
version = "0.4.8"
optional = true
[dependencies.bytes]
version = "1.7"
optional = true
[dependencies.chrono]
version = "0.4.40"
optional = true
[dependencies.crc32c]
version = "0.6"
[dependencies.dns-lookup]
version = "3.0.0"
[dependencies.itoa]
version = "1.0"
[dependencies.jks]
version = "0.3"
optional = true
default-features = false
[dependencies.libc]
version = "0.2"
[dependencies.log]
version = "0.4"
[dependencies.memmap2]
version = "0.9"
[dependencies.ndarray]
version = "0.16"
optional = true
[dependencies.p12-keystore]
version = "0.2"
optional = true
[dependencies.polars]
version = ">=0.52, <0.55"
features = [
"dtype-categorical",
"dtype-datetime",
"dtype-date",
"timezones",
]
optional = true
default-features = false
[dependencies.polars-arrow]
version = ">=0.52, <0.55"
features = ["compute"]
optional = true
default-features = false
[dependencies.questdb-confstr]
version = "0.1.1"
[dependencies.rand]
version = "0.9.0"
optional = true
[dependencies.ring]
version = "0.17.14"
optional = true
[dependencies.rust_decimal]
version = "1.38.0"
optional = true
[dependencies.rustls]
version = "0.23.25"
features = [
"logging",
"std",
"tls12",
]
default-features = false
[dependencies.rustls-native-certs]
version = "0.8.2"
optional = true
[dependencies.rustls-pki-types]
version = "1.12.0"
[dependencies.ryu]
version = "1.0"
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.socket2]
version = "0.6.1"
optional = true
[dependencies.ureq]
version = "3.1.2, <3.2.0"
optional = true
default-features = false
[dependencies.webpki-roots]
version = "1.0.3"
optional = true
default-features = false
[dependencies.zstd]
version = "0.13"
optional = true
[dev-dependencies.chrono]
version = "0.4.31"
[dev-dependencies.criterion]
version = "0.5"
default-features = false
[dev-dependencies.half]
version = "2"
[dev-dependencies.mio]
version = "1"
features = [
"os-poll",
"net",
]
[dev-dependencies.proptest]
version = "1.6.0"
[dev-dependencies.rstest]
version = "0.26.1"
[dev-dependencies.socket2]
version = "0.6.1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tungstenite]
version = "0.27"
features = ["handshake"]
default-features = false
[dev-dependencies.ureq]
version = "3.1.2, <3.2.0"
default-features = false
[dev-dependencies.webpki-roots]
version = "1.0.1"
[build-dependencies.indoc]
version = "2"
[build-dependencies.serde]
version = "1.0.193"
features = ["derive"]
[build-dependencies.serde_json]
version = "1.0.108"
[build-dependencies.slugify]
version = "0.1.0"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.60"
features = [
"Win32_Foundation",
"Win32_Networking_WinSock",
"Win32_Storage_FileSystem",
"Win32_System_IO",
"Win32_System_Threading",
]
[profile.dev.package."*"]
debug = 0
[profile.test.package."*"]
debug = 0