[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" ] } tar = "0.4.44" 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" ] } [dev-dependencies] flate2 = "1.1.0" tempfile = "3.27.0" tokio-test = "0.4.5" wiremock = "0.6.5" # See: # [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" uninlined_format_args = "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"