[package] name = "buffdb" authors = ["Marcus Eagan", "Jacob Pratt"] version = "0.4.0" edition = "2021" description = "Embedded storage at the speed of light." repository = "https://github.com/buffdb/buffdb" readme = "README.md" license = "MIT OR Apache-2.0" keywords = ["database", "storage", "embedded", "key-value", "blob"] categories = ["database-implementations", "embedded"] [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] rustdoc-args = ["--generate-link-to-definition"] [profile.release] lto = true codegen-units = 1 opt-level = "z" panic = "abort" [[bin]] name = "buffdb" required-features = ["binary"] [features] default = ["duckdb", "sqlite"] binary = ["dep:clap"] duckdb = ["dep:duckdb"] sqlite = ["dep:rusqlite"] [dependencies] async-stream = "0.3.5" clap = { version = "4.5.10", features = ["derive"], optional = true } crossbeam = "0.8.4" duckdb = { version = "1.0.0", features = ["bundled"], optional = true } futures = "0.3.30" hyper-util = "0.1.6" prost = "0.13.1" prost-types = "0.13.1" rusqlite = { version = "0.32.1", optional = true } sha2 = "0.10.8" tokio = { version = "1", features = ["rt-multi-thread", "fs"] } tokio-stream = "0.1.15" tonic = "0.12.1" tower = "0.4.13" [build-dependencies] tonic-build = "0.12.1" [dev-dependencies] anyhow = "1.0.86" serial_test = "3.1.1" [lints.rust] ambiguous-glob-reexports = "deny" clashing-extern-declarations = "deny" const-item-mutation = "deny" deref-nullptr = "deny" drop-bounds = "deny" future-incompatible = "deny" hidden-glob-reexports = "deny" improper-ctypes = "deny" improper-ctypes-definitions = "deny" invalid-from-utf8 = "deny" invalid-macro-export-arguments = "deny" invalid-nan-comparisons = "deny" invalid-reference-casting = "deny" invalid-value = "deny" named-arguments-used-positionally = "deny" non-ascii-idents = "deny" opaque-hidden-inferred-bound = "deny" overlapping-range-endpoints = "deny" suspicious-double-ref-op = "deny" temporary-cstring-as-ptr = "deny" unconditional-recursion = "deny" unnameable-test-items = "deny" unsafe-op-in-unsafe-fn = "deny" unstable-syntax-pre-expansion = "deny" keyword-idents = "warn" let-underscore = "warn" macro-use-extern-crate = "warn" meta-variable-misuse = "warn" missing-abi = "warn" missing-copy-implementations = "warn" missing-debug-implementations = "warn" missing-docs = "warn" noop-method-call = "warn" single-use-lifetimes = "warn" trivial-casts = "warn" trivial-numeric-casts = "warn" unreachable-pub = "warn" unstable-name-collisions = { level = "warn", priority = 1 } # overrides #![deny(future_incompatible)] unused = { level = "warn", priority = -1 } unused-import-braces = "warn" unused-lifetimes = "warn" unused-qualifications = "warn" unused-results = "warn" variant-size-differences = "warn" [lints.clippy] undocumented-unsafe-blocks = "deny" all = { level = "warn", priority = -1 } dbg-macro = "warn" decimal-literal-representation = "warn" explicit-auto-deref = "warn" get-unwrap = "warn" manual-let-else = "warn" missing-docs-in-private-items = "warn" missing-enforced-import-renames = "warn" nursery = { level = "warn", priority = -1 } obfuscated-if-else = "warn" print-stdout = "warn" semicolon-outside-block = "warn" todo = "warn" unimplemented = "warn" uninlined-format-args = "warn" unnested-or-patterns = "warn" unwrap-in-result = "warn" unwrap-used = "warn" use-debug = "warn" option-if-let-else = "allow" # suggests terrible code, overrides #![warn(clippy::nursery)] redundant-pub-crate = "allow" # rust-lang/rust-clippy#5369, overrides #![warn(clippy::nursery)] [workspace.lints.rustdoc] private-doc-tests = "warn" unescaped-backticks = "warn"