# cargo-features = ["codegen-backend"] [package] name = "bluepds" version = "0.0.0" edition = "2024" publish = false authors = ["Justin Moore", "Timothy Quilling "] description = "Alternative ATProto PDS implementation" license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/DrChat/bluepds" keywords = ["atproto", "pds"] categories = [] [profile.dev.package."*"] opt-level = 3 # codegen-backend = "cranelift" [profile.dev] opt-level = 1 # codegen-backend = "cranelift" [profile.release] opt-level = "s" # Slightly slows compile times, great improvements to file size and runtime performance. lto = "thin" # Do a second optimization pass over the entire program, including dependencies. codegen-units = 1 # Compile the entire crate as one unit. strip = "debuginfo" # Strip all debugging information from the binary to slightly reduce file size. [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 = "warn" # 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 = "warn" # 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 = "warn" 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" # triggered by lib expect_used = "allow" missing_docs_in_private_items = "allow" # # Temporary Allows - Restriction min_ident_chars = "allow" # 50 instances # arbitrary_source_item_ordering = "allow" renamed_function_params = "allow" # possibly triggered by lib # pattern_type_mismatch = "allow" # 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" # Warns use_self = "warn" str_to_string = "warn" print_stdout = "warn" unseparated_literal_suffix = "warn" unwrap_used = "warn" # Denys enum_glob_use = "deny" # expect_used = "deny" [dependencies] # multihash = "0.19.3" diesel = { version = "2.1.5", features = [ "chrono", "sqlite", "r2d2", "returning_clauses_for_sqlite_3_35", ] } diesel_migrations = { version = "2.1.0" } # r2d2 = "0.8.10" atrium-repo = "0.1" atrium-api = "0.25" # atrium-common = { version = "0.1.2", path = "atrium-common" } atrium-crypto = "0.1" # atrium-identity = { version = "0.1.4", path = "atrium-identity" } # atrium-xrpc = "0.12" # atrium-xrpc-client = "0.5" # bsky-sdk = { version = "0.1.19", path = "bsky-sdk" } rsky-syntax = { git = "https://github.com/blacksky-algorithms/rsky.git" } rsky-repo = { git = "https://github.com/blacksky-algorithms/rsky.git" } rsky-pds = { git = "https://github.com/blacksky-algorithms/rsky.git" } rsky-common = { git = "https://github.com/blacksky-algorithms/rsky.git" } rsky-lexicon = { git = "https://github.com/blacksky-algorithms/rsky.git" } rsky-identity = { git = "https://github.com/blacksky-algorithms/rsky.git" } # async in streams # async-stream = "0.3" # DAG-CBOR codec # ipld-core = "0.4.2" serde_ipld_dagcbor = { version = "0.6.2", default-features = false, features = [ "std", ] } # serde_ipld_dagjson = "0.2.0" cidv10 = { version = "0.10.1", package = "cid" } # Parsing and validation base64 = "0.22.1" chrono = "0.4.39" hex = "0.4.3" # langtag = "0.3" # multibase = "0.9.1" # regex = "1.11.1" serde = { version = "1.0.218", features = ["derive"] } # serde_bytes = "0.11.17" # serde_html_form = "0.2.6" serde_json = "1.0.139" # unsigned-varint = "0.8" # Cryptography # ecdsa = "0.16.9" # elliptic-curve = "0.13.6" # jose-jwa = "0.1.2" # jose-jwk = { version = "0.1.2", default-features = false } # k256 = "0.13.4" # p256 = { version = "0.13.2", default-features = false } rand = "0.8.5" sha2 = "0.10.8" # Networking # dashmap = "6.1.0" futures = "0.3.31" # hickory-proto = { version = "0.24.3", default-features = false } # hickory-resolver = "0.24.1" # http = "1.1.0" # lru = "0.12.4" # moka = "0.12.8" tokio = { version = "1.43.0", features = ["macros", "rt-multi-thread"] } tokio-util = { version = "0.7.13", features = ["io"] } # HTTP client integrations # isahc = "1.7.2" reqwest = { version = "0.12.12", features = ["json"] } # Errors anyhow = "1.0.96" thiserror = "2.0.11" # CLI clap = { version = "4.5.30", features = ["derive"] } # dirs = "5.0.1" # Testing # gloo-timers = { version = "0.3.0", features = ["futures"] } # mockito = "=1.6.1" # WebAssembly # wasm-bindgen-test = "0.3.41" # web-time = "1.1.0" # bumpalo = "~3.14.0" # Code generation # trait-variant = "0.1.2" # Others # base64ct = "=1.6.0" # litemap = "=0.7.4" # native-tls = "=0.2.13" # zerofrom = "=0.1.5" argon2 = { version = "0.5.3", features = ["std"] } axum = { version = "0.8.1", features = [ "tower-log", "form", "macros", "ws", "json", ] } azure_core = "0.22.0" azure_identity = "0.22.0" base32 = "0.5.1" clap-verbosity-flag = "3.0.2" constcat = "0.6.0" figment = { version = "0.10.19", features = ["toml", "env"] } http-cache-reqwest = { version = "0.15.1", default-features = false, features = [ "manager-moka", ] } memmap2 = "0.9.5" metrics = "0.24.1" metrics-exporter-prometheus = "0.16.2" reqwest-middleware = { version = "0.4.0", features = ["json"] } tower-http = { version = "0.6.2", features = ["cors", "fs", "trace"] } tracing = "0.1.41" tracing-subscriber = "0.3.19" url = "2.5.4" uuid = { version = "1.14.0", features = ["v4"] } urlencoding = "2.1.3" # lazy_static = "1.5.0" secp256k1 = "0.28.2" dotenvy = "0.15.7" deadpool-diesel = { version = "0.6.1", features = [ "serde", "sqlite", "tracing", ] } ubyte = "0.10.4"