[package] name = "consumer" version = "0.1.0" edition = "2021" [dependencies] chrono = { version = "0.4.39", features = ["serde"] } chrono-tz = "0.10" cid = "0.11" ciborium = "0.2.2" clap = { version = "4.5.34", features = ["derive"] } deadpool-postgres = { version = "0.14.1", features = ["serde"] } did-resolver = { path = "../did-resolver" } eyre = "0.6.12" figment = { version = "0.10.19", features = ["env", "toml"] } flume = { version = "0.11", features = ["async"] } foldhash = "0.1.4" futures = "0.3.31" futures-util = "0.3.31" ipld-core = "0.4.1" iroh-car = "0.5.1" jacquard = { workspace = true } jacquard-api = { workspace = true } jacquard-common = { workspace = true } lexica = { path = "../lexica" } metrics = "0.24.1" metrics-exporter-prometheus = "0.16.2" moka = { version = "0.12", features = ["future"] } parakeet-db = { path = "../parakeet-db", default-features = false } reqwest = { version = "0.12.12", features = ["native-tls", "brotli", "stream"] } serde = { version = "1.0.217", features = ["derive"] } serde_with = "3.14" serde_bytes = "0.11" serde_ipld_dagcbor = "0.6.1" serde_json = "1.0.134" thiserror = "2" tokio = { version = "1.42.0", features = ["full"] } tokio-postgres = { version = "0.7.12", features = ["with-chrono-0_4", "with-serde_json-1"] } tokio-stream = "0.1.17" tokio-tungstenite = { version = "0.21", features = ["native-tls"] } zstd = { version = "0.13", default-features = false } rand = "0.8.5" tokio-util = { version = "0.7.14", features = ["io", "rt"] } tracing = "0.1.40" tracing-subscriber = "0.3.18" lru = "0.12.2" mpsc = "0.2.6" regex = "1.12.2" once_cell = "1.18.0" futures-channel = "0.3.31" urlencoding = "2.1" color-eyre = "0.6.5" unicode-segmentation = "1.10" async-trait = "0.1" [lints.rust] ## Groups warnings = { level = "warn", priority = -1 } # All lints that are set to issue warnings deprecated-safe = { level = "warn", priority = -1 } # Lints for functions which were erroneously marked as safe in the past future-incompatible = { level = "warn", priority = -1 } # Lints that detect code that has future-compatibility problems keyword-idents = { level = "warn", priority = -1 } # Lints that detect identifiers which will be come keywords in later editions let-underscore = { level = "warn", priority = -1 } # Lints that detect wildcard let bindings that are likely to be invalid nonstandard-style = { level = "warn", priority = -1 } # Violation of standard naming conventions refining-impl-trait = { level = "warn", priority = -1 } # Detects refinement of impl Trait return types by trait implementations # rust-2018-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2015 edition to 2018 # rust-2021-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2018 edition to 2021 # rust-2018-idioms = { level = "warn", priority = -1 } # Lints to nudge you toward idiomatic features of Rust 2018 # rust-2024-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2021 edition to 2024 unused = { level = "warn", priority = -1 } # Lints that detect things being declared but not used, or excess syntax ## Individual ambiguous_negative_literals = "warn" # checks for cases that are confusing between a negative literal and a negation that's not part of the literal. closure_returning_async_block = "warn" # detects cases where users write a closure that returns an async block. # nightly ffi_unwind_calls = "warn" # fuzzy_provenance_casts = "warn" # unstable # lossy_provenance_casts = "warn" # unstable macro_use_extern_crate = "warn" meta_variable_misuse = "warn" missing_abi = "warn" missing_copy_implementations = "allow" # detects potentially-forgotten implementations of Copy for public types. missing_debug_implementations = "allow" # detects missing implementations of fmt::Debug for public types. missing_docs = "allow" # multiple_supertrait_upcastable = "warn" # unstable # must_not_suspend = "warn" # unstable non_ascii_idents = "warn" # non_exhaustive_omitted_patterns = "warn" # unstable redundant_imports = "warn" redundant_lifetimes = "warn" rust_2024_incompatible_pat = "warn" # nightly single_use_lifetimes = "warn" trivial_casts = "warn" trivial_numeric_casts = "warn" unit_bindings = "warn" unnameable_types = "allow" # unqualified_local_imports = "warn" # unstable # unreachable_pub = "warn" unsafe_code = "warn" unstable_features = "warn" # unused_crate_dependencies = "warn" unused_import_braces = "warn" unused_lifetimes = "warn" unused_qualifications = "allow" # unused_results = "warn" variant_size_differences = "warn" elided_lifetimes_in_paths = "allow" # unstable-features = "allow" # # Temporary Allows # dead_code = "allow" # unused_imports = "allow" [lints.clippy] # Groups # nursery = { level = "warn", priority = -1 } # correctness = { level = "warn", priority = -1 } # suspicious = { level = "warn", priority = -1 } # complexity = { level = "warn", priority = -1 } # perf = { level = "warn", priority = -1 } # style = { level = "warn", priority = -1 } # pedantic = { level = "warn", priority = -1 } # restriction = { level = "warn", priority = -1 } # cargo = { level = "warn", priority = -1 } # Temporary Allows # multiple_crate_versions = "allow" # can be triggered by lib expect_used = "allow" missing_docs_in_private_items = "allow" # # Temporary Allows - Restriction min_ident_chars = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" # Restriction group allows - Overly strict for systems code arbitrary_source_item_ordering = "allow" # Don't enforce alphabetical ordering pub_use = "allow" # pub use is idiomatic let_underscore_untyped = "allow" # let _ = is idiomatic for dropping pattern_type_mismatch = "allow" # Pattern ergonomics work fine unwrap_used = "allow" # Used with validated data indexing_slicing = "allow" # Used with validated indices as_conversions = "allow" # Explicit casts are fine in systems code modulo_arithmetic = "allow" # Common in systems code integer_division = "allow" # Common in systems code integer_division_remainder_used = "allow" # Modulo and division are common arithmetic_side_effects = "allow" # Normal arithmetic is fine allow_attributes = "allow" # We use strategic allows impl_trait_in_params = "allow" # Ergonomic and idiomatic semicolon_outside_block = "allow" # Style preference unreachable = "warn" # impossible states cognitive_complexity = "allow" # Complex logic is sometimes necessary default_numeric_fallback = "allow" # Inference works fine string_slice = "allow" # Used with validated strings little_endian_bytes = "allow" # Intentional for wire format wildcard_enum_match_arm = "allow" # Future-proof matches are intentional let_underscore_must_use = "allow" # Explicit ignoring of must_use is fine clone_on_ref_ptr = "allow" # Cloning Arc/Rc is sometimes necessary single_char_lifetime_names = "allow" # Short lifetimes like 'a are fine shadow_unrelated = "allow" # Shadowing is idiomatic iter_over_hash_type = "allow" # Hash iteration is deterministic enough unwrap_in_result = "allow" # Used carefully with validated data unneeded_field_pattern = "warn" # Explicit _ for unused fields # Style Allows implicit_return = "allow" self_named_module_files = "allow" # Choose one of self_named_module_files or mod_module_files mod_module_files = "allow" else_if_without_else = "allow" std_instead_of_alloc = "allow" std_instead_of_core = "allow" blanket_clippy_restriction_lints = "allow" float_arithmetic = "allow" redundant_pub_crate = "allow" pub_with_shorthand = "allow" absolute_paths = "allow" module_name_repetitions = "allow" missing_trait_methods = "allow" separated_literal_suffix = "allow" exhaustive_structs = "allow" field_scoped_visibility_modifiers = "allow" allow_attributes_without_reason = "allow" tests_outside_test_module = "allow" ref_patterns = "allow" question_mark_used = "allow" shadow_reuse = "allow" single_call_fn = "allow" # Pedantic cast allows - intentional numeric conversions in systems code cast_possible_truncation = "allow" cast_possible_wrap = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" # Warns # use_self = "warn" # str_to_string = "warn" print_stdout = "warn" unseparated_literal_suffix = "warn" # unwrap_used = "warn" # Pedantic lints # unnested_or_patterns = "warn" # map_unwrap_or = "warn" # manual_let_else = "warn" # ignored_unit_patterns = "warn" # cast_lossless = "warn" # redundant_closure_for_method_calls = "warn" # cloned_instead_of_copied = "warn" # wildcard_imports = "warn" # ref_option_ref = "warn" # match_bool = "warn" # single_match_else = "warn" # match_same_arms = "warn" # Denys enum_glob_use = "deny" # expect_used = "deny"