1
Fork 0
kantodb/Cargo.toml

227 lines
7.9 KiB
TOML

[workspace]
resolver = "3"
members = ["crates/*", "crates/*/fuzz", "task/*"]
default-members = ["crates/*"]
[workspace.package]
# explicitly set a dummy version so nix build tasks using the workspace don't need to each set it
version = "0.0.0"
authors = ["Tommi Virtanen <tv@eagain.net>"]
license = "Apache-2.0"
homepage = "https://kantodb.com"
repository = "https://git.kantodb.com/kantodb/kantodb"
edition = "2024"
rust-version = "1.85.0"
[workspace.dependencies]
anyhow = "1.0.89"
arbitrary = { version = "1.4.1", features = [
"derive",
] } # sync major version against [`libfuzzer-sys`] re-export or fuzzing will break.
arbitrary-arrow = { version = "0.1.0", path = "crates/arbitrary-arrow" }
arrow = "54.2.0"
async-trait = "0.1.83"
clap = { version = "4.5.19", features = ["derive", "env"] }
dashmap = "6.1.0"
datafusion = "46.0.1"
duplicate = "2.0.0"
futures = "0.3.30"
futures-lite = "2.3.0"
gat-lending-iterator = "0.1.6"
hex = "0.4.3"
ignore = "0.4.23"
indexmap = "2.7.0" # sync major version against [`rkyv`] feature `indexmap-2`
kanto = { version = "0.1.0", path = "crates/kanto" }
kanto-backend-rocksdb = { version = "0.1.0", path = "crates/backend-rocksdb" }
kanto-index-format-v1 = { version = "0.1.0", path = "crates/index-format-v1" }
kanto-key-format-v1 = { version = "0.1.0", path = "crates/key-format-v1" }
kanto-meta-format-v1 = { version = "0.1.0", path = "crates/meta-format-v1" }
kanto-protocol-postgres = { version = "0.1.0", path = "crates/protocol-postgres" }
kanto-record-format-v1 = { version = "0.1.0", path = "crates/record-format-v1" }
kanto-testutil = { version = "0.1.0", path = "crates/testutil" }
kanto-tunables = { version = "0.1.0", path = "crates/tunables" }
libc = "0.2.153"
libfuzzer-sys = "0.4.9"
librocksdb-sys = { version = "0.17.1", features = ["lz4", "static", "zstd"] }
libtest-mimic = "0.8.1"
maybe-tracing = { version = "0.1.0", path = "crates/maybe-tracing" }
parking_lot = "0.12.3"
paste = "1.0.15"
pgwire = "0.28.0"
regex = "1.10.6"
rkyv = { version = "0.8.10", features = ["unaligned", "indexmap-2"] }
rkyv_util = { version = "0.1.0-alpha.1" }
rocky = { version = "0.1.0", path = "crates/rocky" }
smallvec = { version = "1.13.2", features = ["union"] }
sqllogictest = "0.28.0"
tempfile = "3.10.1"
test-log = { version = "0.2.16", default-features = false, features = [
"trace",
] }
thiserror = "2.0.6"
tokio = { version = "1.40.0", features = ["macros", "rt-multi-thread"] }
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", default-features = false, features = [
"env-filter",
"fmt",
"json",
] }
tree-sitter = "0.23.0"
tree-sitter-md = { version = "0.3.2", features = ["parser"] }
tree-sitter-rust = "0.23.0"
unindent = "0.2.3"
walkdir = "2.5.0"
[workspace.lints.rust]
absolute_paths_not_starting_with_crate = "warn"
ambiguous_negative_literals = "warn"
closure_returning_async_block = "warn"
dead_code = "warn"
deprecated_safe_2024 = "deny"
elided_lifetimes_in_paths = "warn"
explicit_outlives_requirements = "warn"
future_incompatible = { level = "warn", priority = -1 }
if_let_rescope = "warn"
impl_trait_redundant_captures = "warn"
keyword_idents_2024 = "warn"
let_underscore_drop = "warn"
macro_use_extern_crate = "deny"
meta_variable_misuse = "warn"
missing_abi = "deny"
missing_copy_implementations = "allow" # TODO switch this to warn #urgency/low
missing_debug_implementations = "allow" # TODO switch this to warn #urgency/low
missing_docs = "warn"
missing_unsafe_on_extern = "deny"
non_ascii_idents = "forbid"
redundant_imports = "warn"
redundant_lifetimes = "warn"
rust_2018_idioms = { level = "warn", priority = -1 }
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unexpected_cfgs = { level = "allow", check-cfg = ["cfg(kani)"] }
unit_bindings = "warn"
unnameable_types = "warn"
unreachable_pub = "warn"
unsafe_attr_outside_unsafe = "deny"
unsafe_code = "deny"
unsafe_op_in_unsafe_fn = "deny"
unused_crate_dependencies = "allow" # TODO false positives for packages with bin/lib/integration tests; desirable because this catches things `cargo-shear` does not <https://github.com/rust-lang/rust/issues/95513> #waiting #ecosystem/rust #severity/low #urgency/low
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_macro_rules = "warn"
unused_qualifications = "warn"
unused_results = "warn"
variant_size_differences = "warn"
[workspace.lints.clippy]
all = { level = "warn", priority = -2 }
allow_attributes = "warn"
arithmetic_side_effects = "warn"
as_conversions = "warn"
as_underscore = "warn"
assertions_on_result_states = "deny"
cargo = { level = "warn", priority = -1 }
cast_lossless = "warn"
cast_possible_truncation = "warn"
cfg_not_test = "warn"
complexity = { level = "warn", priority = -1 }
dbg_macro = "warn"
default_numeric_fallback = "warn"
disallowed_script_idents = "deny"
else_if_without_else = "warn"
empty_drop = "deny"
empty_enum_variants_with_brackets = "warn"
empty_structs_with_brackets = "warn"
error_impl_error = "warn"
exhaustive_enums = "warn"
exhaustive_structs = "warn"
exit = "deny"
expect_used = "allow" # TODO switch this to warn
field_scoped_visibility_modifiers = "allow" # TODO switch this to warn #urgency/medium
float_cmp_const = "warn"
fn_to_numeric_cast_any = "deny"
format_push_string = "warn"
host_endian_bytes = "deny"
if_not_else = "allow"
if_then_some_else_none = "warn"
indexing_slicing = "warn"
infinite_loop = "warn"
integer_division = "warn"
iter_over_hash_type = "warn"
large_include_file = "warn"
let_underscore_must_use = "warn"
let_underscore_untyped = "warn"
lossy_float_literal = "deny"
manual_is_power_of_two = "warn"
map_err_ignore = "warn"
map_unwrap_or = "allow"
match_like_matches_macro = "allow"
mem_forget = "deny"
missing_asserts_for_indexing = "warn"
missing_const_for_fn = "warn"
missing_errors_doc = "allow" # TODO write docstrings, remove this #urgency/medium
missing_inline_in_public_items = "allow" # TODO consider warn #urgency/low #performance
missing_panics_doc = "allow" # TODO write docstrings, remove this #urgency/medium
mixed_read_write_in_expression = "deny"
module_name_repetitions = "warn"
modulo_arithmetic = "warn"
multiple_crate_versions = "allow" # TODO i wish there was a way to fix this <https://github.com/rust-lang/rust-clippy/issues/9756> #urgency/low
multiple_unsafe_ops_per_block = "deny"
mutex_atomic = "warn"
non_ascii_literal = "deny"
non_zero_suggestions = "warn"
panic = "warn"
panic_in_result_fn = "warn" # note, this allows `debug_assert` but not `assert`
partial_pub_fields = "warn"
pathbuf_init_then_push = "warn"
pedantic = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
print_stderr = "warn"
print_stdout = "warn"
pub_without_shorthand = "warn"
rc_buffer = "warn"
rc_mutex = "deny"
redundant_type_annotations = "warn"
ref_patterns = "warn"
renamed_function_params = "warn"
rest_pat_in_fully_bound_structs = "warn"
same_name_method = "deny"
semicolon_inside_block = "warn"
separated_literal_suffix = "warn"
set_contains_or_insert = "warn"
significant_drop_in_scrutinee = "warn"
similar_names = "allow" # too eager
str_to_string = "warn"
string_add = "warn"
string_lit_chars_any = "warn"
string_slice = "warn"
string_to_string = "warn"
style = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
suspicious_xor_used_as_pow = "warn"
tests_outside_test_module = "allow" # TODO to switch this to warn <https://github.com/rust-lang/rust-clippy/issues/11024> #waiting #urgency/low #severity/low
todo = "warn"
try_err = "warn"
undocumented_unsafe_blocks = "allow" # TODO write safety docs, switch this to warn #urgency/low
unimplemented = "warn"
unnecessary_safety_comment = "warn"
unnecessary_safety_doc = "warn"
unnecessary_self_imports = "deny"
unreachable = "deny"
unused_result_ok = "warn"
unused_trait_names = "warn"
unwrap_in_result = "warn"
unwrap_used = "warn"
use_debug = "warn"
verbose_file_reads = "warn"
wildcard_imports = "warn"
[workspace.metadata.spellcheck]
config = "cargo-spellcheck.toml"
[workspace.metadata.crane]
name = "kantodb"
[profile.release]
lto = true