[package]
edition = "2021"
rust-version = "1.92.0"
name = "oxifaster"
version = "0.1.3"
authors = ["oxifaster contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A high-performance concurrent key-value store and log engine in Rust"
readme = "README.md"
keywords = [
"kv-store",
"database",
"concurrent",
"log",
"storage",
]
categories = [
"database",
"data-structures",
"concurrency",
]
license = "MIT"
repository = "https://github.com/wayslog/oxifaster"
[features]
default = ["hash-xxh3"]
f2 = []
hash-xxh3 = [
"dep:xxhash-rust",
"xxhash-rust/xxh3",
]
hash-xxh64 = [
"dep:xxhash-rust",
"xxhash-rust/xxh64",
]
io_uring = ["dep:io-uring"]
prometheus = []
statistics = []
[lib]
name = "oxifaster"
path = "src/lib.rs"
[[bin]]
name = "format_inspector"
path = "tools/format_inspector.rs"
required-features = ["clap"]
[[bin]]
name = "interop_index_tool"
path = "tools/interop_index_tool.rs"
required-features = ["clap"]
[[bin]]
name = "verify_compatibility"
path = "tools/verify_compatibility.rs"
required-features = ["clap"]
[[example]]
name = "async_operations"
path = "examples/async_operations.rs"
[[example]]
name = "basic_kv"
path = "examples/basic_kv.rs"
[[example]]
name = "checkpoint_recovery"
path = "examples/checkpoint_recovery.rs"
[[example]]
name = "cold_index"
path = "examples/cold_index.rs"
[[example]]
name = "compaction"
path = "examples/compaction.rs"
[[example]]
name = "concurrent_access"
path = "examples/concurrent_access.rs"
[[example]]
name = "config_store"
path = "examples/config_store.rs"
[[example]]
name = "custom_types"
path = "examples/custom_types.rs"
[[example]]
name = "epoch_protection"
path = "examples/epoch_protection.rs"
[[example]]
name = "f2_hot_cold"
path = "examples/f2_hot_cold.rs"
[[example]]
name = "faster_log"
path = "examples/faster_log.rs"
[[example]]
name = "incremental_checkpoint"
path = "examples/incremental_checkpoint.rs"
[[example]]
name = "index_growth"
path = "examples/index_growth.rs"
[[example]]
name = "io_uring"
path = "examples/io_uring.rs"
[[example]]
name = "log_scan"
path = "examples/log_scan.rs"
[[example]]
name = "ops_self_check"
path = "examples/ops_self_check.rs"
[[example]]
name = "prometheus_metrics"
path = "examples/prometheus_metrics.rs"
[[example]]
name = "read_cache"
path = "examples/read_cache.rs"
[[example]]
name = "statistics"
path = "examples/statistics.rs"
[[example]]
name = "variable_length"
path = "examples/variable_length.rs"
[[test]]
name = "async_session"
path = "tests/async_session.rs"
[[test]]
name = "auto_compaction"
path = "tests/auto_compaction.rs"
[[test]]
name = "basic_ops"
path = "tests/basic_ops.rs"
[[test]]
name = "checkpoint"
path = "tests/checkpoint.rs"
[[test]]
name = "checkpoint_concurrent"
path = "tests/checkpoint_concurrent.rs"
[[test]]
name = "checkpoint_crash"
path = "tests/checkpoint_crash.rs"
[[test]]
name = "checkpoint_locks"
path = "tests/checkpoint_locks.rs"
[[test]]
name = "codec_bincode"
path = "tests/codec_bincode.rs"
[[test]]
name = "cold_index"
path = "tests/cold_index.rs"
[[test]]
name = "compaction"
path = "tests/compaction.rs"
[[test]]
name = "compatibility"
path = "tests/compatibility.rs"
[[test]]
name = "conditional_insert"
path = "tests/conditional_insert.rs"
[[test]]
name = "coverage_compaction"
path = "tests/coverage_compaction.rs"
[[test]]
name = "coverage_epoch_delta"
path = "tests/coverage_epoch_delta.rs"
[[test]]
name = "coverage_log_scan"
path = "tests/coverage_log_scan.rs"
[[test]]
name = "coverage_near80"
path = "tests/coverage_near80.rs"
[[test]]
name = "coverage_phase1"
path = "tests/coverage_phase1.rs"
[[test]]
name = "coverage_store"
path = "tests/coverage_store.rs"
[[test]]
name = "coverage_store_internal"
path = "tests/coverage_store_internal.rs"
[[test]]
name = "cpr_checkpoint_under_load"
path = "tests/cpr_checkpoint_under_load.rs"
[[test]]
name = "cpr_integration"
path = "tests/cpr_integration.rs"
[[test]]
name = "f2"
path = "tests/f2.rs"
[[test]]
name = "f2_alignment"
path = "tests/f2_alignment.rs"
[[test]]
name = "faster_log"
path = "tests/faster_log.rs"
[[test]]
name = "fuzz_async"
path = "tests/fuzz_async.rs"
[[test]]
name = "fuzz_concurrent"
path = "tests/fuzz_concurrent.rs"
[[test]]
name = "fuzz_kv"
path = "tests/fuzz_kv.rs"
[[test]]
name = "fuzz_kv_pending"
path = "tests/fuzz_kv_pending.rs"
[[test]]
name = "fuzz_kv_varlen"
path = "tests/fuzz_kv_varlen.rs"
[[test]]
name = "fuzz_log"
path = "tests/fuzz_log.rs"
[[test]]
name = "fuzz_ops"
path = "tests/fuzz_ops.rs"
[[test]]
name = "fuzz_types"
path = "tests/fuzz_types.rs"
[[test]]
name = "guid_byteorder_test"
path = "tests/guid_byteorder_test.rs"
[[test]]
name = "hash"
path = "tests/hash.rs"
[[test]]
name = "incremental_checkpoint"
path = "tests/incremental_checkpoint.rs"
[[test]]
name = "index_growth"
path = "tests/index_growth.rs"
[[test]]
name = "log_scan"
path = "tests/log_scan.rs"
[[test]]
name = "log_truncation"
path = "tests/log_truncation.rs"
[[test]]
name = "log_types"
path = "tests/log_types.rs"
[[test]]
name = "ops"
path = "tests/ops.rs"
[[test]]
name = "ops_checkpoint"
path = "tests/ops_checkpoint.rs"
[[test]]
name = "pending_io"
path = "tests/pending_io.rs"
[[test]]
name = "read_cache"
path = "tests/read_cache.rs"
[[test]]
name = "read_view"
path = "tests/read_view.rs"
[[test]]
name = "recovery"
path = "tests/recovery.rs"
[[test]]
name = "recovery_validation"
path = "tests/recovery_validation.rs"
[[test]]
name = "statistics"
path = "tests/statistics.rs"
[[test]]
name = "varlen"
path = "tests/varlen.rs"
[[bench]]
name = "ycsb"
path = "benches/ycsb.rs"
harness = false
[dependencies.async-trait]
version = "0.1"
[dependencies.bincode]
version = "1"
[dependencies.bytemuck]
version = "1"
features = ["derive"]
[dependencies.bytes]
version = "1"
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.crossbeam]
version = "0.8"
[dependencies.crossbeam-utils]
version = "0.8"
[dependencies.parking_lot]
version = "0.12"
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.xxhash-rust]
version = "0.8"
optional = true
default-features = false
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.rayon]
version = "1.10"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio-test]
version = "0.4"
[target.'cfg(target_os = "linux")'.dependencies.io-uring]
version = "0.6"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.libc]
version = "0.2"
[lints.rust]
warnings = "deny"
[profile.bench]
lto = true
codegen-units = 1
[profile.release]
opt-level = 3
lto = true
codegen-units = 1