227 lines
7.9 KiB
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
|