tonbo 0.3.2

An embedded persistent KV database in Rust.
Documentation
[[bench]]
harness = false
name = "common"
path = "benches/common.rs"
required-features = ["bench"]

[[bench]]
harness = false
name = "read_bench"
path = "benches/read_bench.rs"
required-features = ["bench"]

[[bench]]
harness = false
name = "write_bench"
path = "benches/write_bench.rs"
required-features = ["bench"]

[[bench]]
harness = false
name = "writes"
path = "benches/criterion/writes.rs"
required-features = ["sled"]

[dependencies.arrow]
version = "54"

[dependencies.async-lock]
version = "3"

[dependencies.async-stream]
version = "0.3"

[dependencies.async-trait]
optional = true
version = "0.1"

[dependencies.bytes]
optional = true
version = "1.7"

[dependencies.crc32fast]
version = "1"

[dependencies.crossbeam-skiplist]
version = "0.1"

[dependencies.datafusion]
optional = true
version = "45"

[dependencies.flume]
features = ["async"]
version = "0.11"

[dependencies.fusio]
features = ["dyn", "fs"]
package = "fusio"
version = "0.3.8"

[dependencies.fusio-dispatch]
package = "fusio-dispatch"
version = "0.3.8"

[dependencies.fusio-log]
default-features = false
features = ["bytes"]
package = "fusio-log"
version = "0.3.8"

[dependencies.fusio-parquet]
package = "fusio-parquet"
version = "0.3.8"

[dependencies.futures-core]
version = "0.3"

[dependencies.futures-util]
version = "0.3"

[dependencies.lockable]
version = "0.1.1"

[dependencies.log]
version = "0.4.22"

[dependencies.once_cell]
version = "1"

[dependencies.parquet]
default-features = false
features = ["async", "base64", "brotli", "flate2", "lz4", "snap"]
version = "54"

[dependencies.parquet-lru]
version = "0.3.0"

[dependencies.pin-project-lite]
version = "0.2"

[dependencies.redb]
optional = true
version = "2"

[dependencies.rocksdb]
optional = true
version = "0.23"

[dependencies.sled]
optional = true
version = "0.34"

[dependencies.thiserror]
version = "2.0.3"

[dependencies.tokio]
default-features = false
features = ["io-util"]
version = "1"

[dependencies.tonbo_macros]
version = "0.3.1"

[dependencies.tracing]
version = "0.1"

[dependencies.ulid]
features = ["serde"]
version = "1"

[dev-dependencies.bincode]
version = "1"

[dev-dependencies.fastrand]
version = "2"

[dev-dependencies.futures]
version = "0.3"

[dev-dependencies.serde]
version = "1"

[dev-dependencies.tempfile]
version = "3"

[dev-dependencies.trybuild]
version = "1.0"

[[example]]
name = "datafusion"
path = "examples/datafusion.rs"
required-features = ["datafusion"]

[[example]]
name = "declare"
path = "examples/declare.rs"
required-features = ["bytes", "tokio"]

[[example]]
name = "dynamic"
path = "examples/dynamic.rs"

[features]
aws = ["fusio-dispatch/aws", "fusio-log/aws", "fusio/aws"]
bench = ["redb", "rocksdb", "sled"]
bytes = ["dep:bytes"]
datafusion = ["dep:async-trait", "dep:datafusion"]
default = ["aws", "bytes", "tokio", "tokio-http"]
load_tbl = []
object-store = ["fusio/object_store"]
opfs = ["dep:wasm-bindgen-futures", "fusio-dispatch/opfs", "fusio-log/web", "fusio-parquet/web", "fusio/opfs"]
redb = ["dep:redb"]
rocksdb = ["dep:rocksdb"]
sled = ["dep:sled"]
sync = ["fusio/sync"]
tokio = ["fusio-dispatch/tokio", "fusio-log/tokio", "fusio-parquet/tokio", "fusio/tokio", "parquet/default", "tokio/fs", "tokio/rt-multi-thread"]
tokio-http = ["fusio/tokio-http", "fusio-log/tokio-http"]
wasm = ["aws", "bytes", "opfs", "wasm-http"]
wasm-http = ["fusio/wasm-http", "fusio-log/web-http"]

[lib]
name = "tonbo"
path = "src/lib.rs"

[package]
autobenches = false
autobins = false
autoexamples = false
autotests = false
build = false
description = "An embedded persistent KV database in Rust."
documentation = "https://docs.rs/tonbo"
edition = "2021"
license = "Apache-2.0"
name = "tonbo"
readme = "README.md"
resolver = "2"
version = "0.3.2"

[package.metadata]
msrv = "1.79.0"

[profile.bench]
debug = 2
inherits = "release"

[profile.release]
codegen-units = 1
lto = "thin"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.comfy-table]
version = "7"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
features = ["async_tokio", "html_reports"]
version = "0.5"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.mimalloc]
version = "0.1"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tokio]
features = ["full"]
version = "1"

[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
features = ["wasm_js"]
version = "0.3.1"

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.95"

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
optional = true
version = "0.4.45"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen]
version = "0.2.95"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
version = "0.3.9"

[target."cfg(unix)".dev-dependencies.pprof]
features = ["criterion", "flamegraph"]
version = "0.14"

[[test]]
name = "data_integrity"
path = "tests/data_integrity.rs"

[[test]]
name = "macros_correctness"
path = "tests/macros_correctness.rs"

[[test]]
name = "wasm"
path = "tests/wasm.rs"