konservejo/Cargo.toml
NotAShelf 87bdd70b9e
initial working prototype
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3c8eddfdc43193e2d6a47c576dbe51e56a6a6964
2026-03-17 16:18:13 +03:00

108 lines
3.9 KiB
TOML

[package]
name = "konservejo"
version = "0.1.0"
edition = "2024"
[dependencies]
anyhow = "1.0.102"
async-trait = "0.1.89"
aws-config = "1.8.15"
aws-sdk-s3 = "1.126.0"
blake3 = "1.8.3"
chrono = { version = "0.4.44", features = [ "serde" ] }
clap = { version = "4.6.0", features = [ "derive" ] }
color-eyre = "0.6.5"
futures = "0.3.32"
hex = "0.4.3"
regex = "1.12.3"
reqwest = { version = "0.13.2", features = [ "json", "stream" ], default-features = false }
serde = { version = "1.0.228", features = [ "derive" ] }
serde_json = "1.0.149"
sqlx = { version = "0.8.6", features = [ "runtime-tokio", "sqlite", "migrate", "uuid", "chrono" ] }
thiserror = "2.0.18"
tokio = { version = "1.50.0", features = [ "full" ] }
tokio-util = { version = "0.7.18", features = [ "io", "compat" ] }
toml = "1.0.6"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.23", features = [ "json", "env-filter" ] }
urlencoding = "2.1.3"
uuid = { version = "1.22.0", features = [ "v4", "serde" ] }
# See:
# <https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html>
[lints.clippy]
cargo = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
# The lint groups above enable some less-than-desirable rules, we should manually
# enable those to keep our sanity.
absolute_paths = "allow"
arbitrary_source_item_ordering = "allow"
clone_on_ref_ptr = "warn"
dbg_macro = "warn"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
filetype_is_file = "warn"
get_unwrap = "warn"
implicit_return = "allow"
infinite_loop = "warn"
map_with_unused_argument_over_ranges = "warn"
missing_docs_in_private_items = "allow"
multiple_crate_versions = "allow" # :(
non_ascii_literal = "allow"
non_std_lazy_statics = "warn"
pathbuf_init_then_push = "warn"
pattern_type_mismatch = "allow"
question_mark_used = "allow"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"
similar_names = "allow"
single_call_fn = "allow"
std_instead_of_core = "allow"
too_long_first_doc_paragraph = "allow"
too_many_lines = "allow"
undocumented_unsafe_blocks = "warn"
unnecessary_safety_comment = "warn"
unused_result_ok = "warn"
unused_trait_names = "allow"
# False positive:
# clippy's build script check doesn't recognize workspace-inherited metadata
# which means in our current workspace layout, we get pranked by Clippy.
cargo_common_metadata = "allow"
# In the honor of a recent Cloudflare regression
panic = "deny"
unwrap_used = "deny"
# Less dangerous, but we'd like to know
# Those must be opt-in, and are fine ONLY in tests and examples. We *can* panic
# in NDG (the binary crate), but it should be very deliberate
expect_used = "warn"
print_stderr = "warn"
print_stdout = "warn"
todo = "warn"
unimplemented = "warn"
unreachable = "warn"
[profile.dev]
debug = true
opt-level = 0
[profile.release]
codegen-units = 1
lto = true
opt-level = "z"
panic = "abort"
strip = "symbols"
[dev-dependencies]
tempfile = "3.27.0"
tokio-test = "0.4.5"
wiremock = "0.6.5"