armdb 0.1.9

sharded bitcask key-value storage optimized for NVMe
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "armdb"
version = "0.1.9"
authors = ["Rail Khusnutdinov <rail@33.run>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "sharded bitcask key-value storage optimized for NVMe"
homepage = "https://github.com/libfunc/armour/"
documentation = "https://docs.rs/armdb/"
readme = "README.md"
keywords = [
    "key-value",
    "database",
]
categories = []
license = "MIT OR Apache-2.0"
repository = "https://github.com/libfunc/armour/"

[features]
armour = [
    "dep:serde",
    "dep:serde_json",
    "dep:rend",
    "dep:arrayvec",
    "typed-tree",
]
bitcode-codec = [
    "typed-tree",
    "dep:bitcode",
]
bytemuck-codec = [
    "typed-tree",
    "dep:bytemuck",
]
default = [
    "parking_lot",
    "typed-tree",
    "rapira-codec",
    "bytemuck-codec",
    "rpc",
    "replication",
]
encryption = ["dep:ring"]
hot-path-tracing = []
loom = ["dep:loom"]
parking_lot = ["dep:parking_lot"]
postcard-codec = [
    "typed-tree",
    "dep:postcard",
    "dep:serde",
]
rapira-codec = [
    "typed-tree",
    "dep:rapira",
]
replication = ["dep:rtrb"]
rpc = [
    "armour",
    "dep:armour-rpc",
    "dep:compio",
    "dep:futures-util",
    "dep:async-broadcast",
    "dep:ctrlc",
]
solana = [
    "armour",
    "armour-core/solana",
    "dep:solana-pubkey",
    "dep:solana-signature",
]
typed-tree = []
var-collections = ["dep:quick_cache"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[bench]]
name = "kv_ops"
path = "benches/kv_ops.rs"
harness = false

[dependencies.armour-core]
version = "0.1"
features = ["std"]

[dependencies.armour-rpc]
version = "0.1"
optional = true

[dependencies.arrayvec]
version = "0.7"
optional = true

[dependencies.async-broadcast]
version = "0.7"
optional = true

[dependencies.bitcode]
version = "0.6"
optional = true

[dependencies.bytemuck]
version = "1"
features = [
    "derive",
    "extern_crate_alloc",
]
optional = true

[dependencies.compio]
version = "0.18"
features = [
    "runtime",
    "net",
    "io",
    "macros",
    "signal",
]
optional = true

[dependencies.crc32fast]
version = "1.4"

[dependencies.ctrlc]
version = "3.4"
optional = true

[dependencies.derive_more]
version = "2"
features = [
    "debug",
    "from",
    "deref",
    "deref_mut",
    "as_ref",
]

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

[dependencies.loom]
version = "0.7"
optional = true

[dependencies.metrics]
version = "0.24"

[dependencies.parking_lot]
version = "0.12"
optional = true

[dependencies.postcard]
version = "1"
features = ["alloc"]
optional = true

[dependencies.quick_cache]
version = "0.6"
features = ["stats"]
optional = true

[dependencies.rapira]
version = "0.12"
optional = true

[dependencies.rend]
version = "0.5"
optional = true

[dependencies.ring]
version = "0.17"
optional = true

[dependencies.rtrb]
version = "0.3"
optional = true

[dependencies.seize]
version = "0.5"

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.solana-pubkey]
version = "4.0"
features = ["bytemuck"]
optional = true

[dependencies.solana-signature]
version = "3.1"
features = ["bytemuck"]
optional = true

[dependencies.thiserror]
version = "2.0"

[dependencies.tracing]
version = "0.1"

[dependencies.uuid]
version = "1"
features = ["bytemuck"]
optional = true
default-features = false

[dependencies.xxhash-rust]
version = "0.8"
features = ["xxh3"]

[dependencies.zerocopy]
version = "0.8"
features = ["derive"]

[dev-dependencies.criterion]
version = "0.8"

[dev-dependencies.libc]
version = "0.2"

[dev-dependencies.loom]
version = "0.7"

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

[dev-dependencies.rand]
version = "0.10"

[dev-dependencies.rapira]
version = "0.12"

[dev-dependencies.seize]
version = "0.5"

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

[target.'cfg(target_os = "linux")'.dependencies.rustix]
version = "1.1"
features = [
    "io_uring",
    "linux_latest",
    "fs",
    "process",
]

[target.'cfg(target_os = "linux")'.dependencies.rustix-uring]
version = "0.6"