Alternative ATProto PDS implementation
at oauth 9.4 kB view raw
1# cargo-features = ["codegen-backend"] 2 3[package] 4name = "bluepds" 5version = "0.0.0" 6edition = "2024" 7publish = false 8authors = ["Justin Moore", "Timothy Quilling <teqed@shatteredsky.net>"] 9description = "Alternative ATProto PDS implementation" 10license = "MIT OR Apache-2.0" 11readme = "README.md" 12repository = "https://github.com/DrChat/bluepds" 13keywords = ["atproto", "pds"] 14categories = [] 15 16[profile.dev.package."*"] 17opt-level = 3 18# codegen-backend = "cranelift" 19 20[profile.dev] 21opt-level = 1 22# codegen-backend = "cranelift" 23 24[profile.release] 25opt-level = "s" # Slightly slows compile times, great improvements to file size and runtime performance. 26lto = "thin" # Do a second optimization pass over the entire program, including dependencies. 27codegen-units = 1 # Compile the entire crate as one unit. 28strip = "debuginfo" # Strip all debugging information from the binary to slightly reduce file size. 29 30[lints.rust] 31## Groups 32warnings = { level = "warn", priority = -1 } # All lints that are set to issue warnings 33deprecated-safe = { level = "warn", priority = -1 } # Lints for functions which were erroneously marked as safe in the past 34future-incompatible = { level = "warn", priority = -1 } # Lints that detect code that has future-compatibility problems 35keyword-idents = { level = "warn", priority = -1 } # Lints that detect identifiers which will be come keywords in later editions 36let-underscore = { level = "warn", priority = -1 } # Lints that detect wildcard let bindings that are likely to be invalid 37nonstandard-style = { level = "warn", priority = -1 } # Violation of standard naming conventions 38refining-impl-trait = { level = "warn", priority = -1 } # Detects refinement of impl Trait return types by trait implementations 39rust-2018-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2015 edition to 2018 40rust-2021-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2018 edition to 2021 41rust-2018-idioms = { level = "warn", priority = -1 } # Lints to nudge you toward idiomatic features of Rust 2018 42rust-2024-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2021 edition to 2024 43# unused = { level = "warn", priority = -1 } # Lints that detect things being declared but not used, or excess syntax 44## Individual 45ambiguous_negative_literals = "warn" # checks for cases that are confusing between a negative literal and a negation that's not part of the literal. 46closure_returning_async_block = "warn" # detects cases where users write a closure that returns an async block. # nightly 47ffi_unwind_calls = "warn" 48# fuzzy_provenance_casts = "warn" # unstable 49# lossy_provenance_casts = "warn" # unstable 50macro_use_extern_crate = "warn" 51meta_variable_misuse = "warn" 52missing_abi = "warn" 53missing_copy_implementations = "allow" # detects potentially-forgotten implementations of Copy for public types. 54missing_debug_implementations = "allow" # detects missing implementations of fmt::Debug for public types. 55missing_docs = "warn" 56# multiple_supertrait_upcastable = "warn" # unstable 57# must_not_suspend = "warn" # unstable 58non_ascii_idents = "warn" 59# non_exhaustive_omitted_patterns = "warn" # unstable 60redundant_imports = "warn" 61redundant_lifetimes = "warn" 62rust_2024_incompatible_pat = "warn" # nightly 63single_use_lifetimes = "warn" 64trivial_casts = "warn" 65trivial_numeric_casts = "warn" 66unit_bindings = "warn" 67unnameable_types = "warn" 68# unqualified_local_imports = "warn" # unstable 69# unreachable_pub = "warn" 70unsafe_code = "warn" 71unstable_features = "warn" 72# unused_crate_dependencies = "warn" 73unused_import_braces = "warn" 74unused_lifetimes = "warn" 75unused_qualifications = "warn" 76unused_results = "warn" 77variant_size_differences = "warn" 78elided_lifetimes_in_paths = "allow" 79# unstable-features = "allow" 80# # Temporary Allows 81dead_code = "allow" 82# unused_imports = "allow" 83 84[lints.clippy] 85# Groups 86nursery = { level = "warn", priority = -1 } 87correctness = { level = "warn", priority = -1 } 88suspicious = { level = "warn", priority = -1 } 89# complexity = { level = "warn", priority = -1 } 90# perf = { level = "warn", priority = -1 } 91# style = { level = "warn", priority = -1 } 92# pedantic = { level = "warn", priority = -1 } 93# restriction = { level = "warn", priority = -1 } 94cargo = { level = "warn", priority = -1 } 95# Temporary Allows 96multiple_crate_versions = "allow" # triggered by lib 97expect_used = "allow" 98missing_docs_in_private_items = "allow" 99# # Temporary Allows - Restriction 100min_ident_chars = "allow" # 50 instances 101# arbitrary_source_item_ordering = "allow" 102renamed_function_params = "allow" # possibly triggered by lib 103# pattern_type_mismatch = "allow" 104# Style Allows 105implicit_return = "allow" 106self_named_module_files = "allow" # Choose one of self_named_module_files or mod_module_files 107mod_module_files = "allow" 108else_if_without_else = "allow" 109std_instead_of_alloc = "allow" 110std_instead_of_core = "allow" 111blanket_clippy_restriction_lints = "allow" 112float_arithmetic = "allow" 113redundant_pub_crate = "allow" 114pub_with_shorthand = "allow" 115absolute_paths = "allow" 116module_name_repetitions = "allow" 117missing_trait_methods = "allow" 118separated_literal_suffix = "allow" 119exhaustive_structs = "allow" 120field_scoped_visibility_modifiers = "allow" 121allow_attributes_without_reason = "allow" 122tests_outside_test_module = "allow" 123ref_patterns = "allow" 124question_mark_used = "allow" 125shadow_reuse = "allow" 126single_call_fn = "allow" 127# Warns 128use_self = "warn" 129str_to_string = "warn" 130print_stdout = "warn" 131unseparated_literal_suffix = "warn" 132unwrap_used = "warn" 133# Denys 134enum_glob_use = "deny" 135# expect_used = "deny" 136 137[dependencies] 138# multihash = "0.19.3" 139diesel = { version = "2.1.5", features = [ 140 "chrono", 141 "sqlite", 142 "r2d2", 143 "returning_clauses_for_sqlite_3_35", 144] } 145diesel_migrations = { version = "2.1.0" } 146# r2d2 = "0.8.10" 147 148atrium-repo = "0.1" 149atrium-api = "0.25" 150# atrium-common = { version = "0.1.2", path = "atrium-common" } 151atrium-crypto = "0.1" 152# atrium-identity = { version = "0.1.4", path = "atrium-identity" } 153# atrium-xrpc = "0.12" 154# atrium-xrpc-client = "0.5" 155# bsky-sdk = { version = "0.1.19", path = "bsky-sdk" } 156rsky-syntax = { git = "https://github.com/blacksky-algorithms/rsky.git" } 157rsky-repo = { git = "https://github.com/blacksky-algorithms/rsky.git" } 158rsky-pds = { git = "https://github.com/blacksky-algorithms/rsky.git" } 159rsky-common = { git = "https://github.com/blacksky-algorithms/rsky.git" } 160rsky-lexicon = { git = "https://github.com/blacksky-algorithms/rsky.git" } 161rsky-identity = { git = "https://github.com/blacksky-algorithms/rsky.git" } 162 163# async in streams 164# async-stream = "0.3" 165 166# DAG-CBOR codec 167# ipld-core = "0.4.2" 168serde_ipld_dagcbor = { version = "0.6.2", default-features = false, features = [ 169 "std", 170] } 171# serde_ipld_dagjson = "0.2.0" 172cidv10 = { version = "0.10.1", package = "cid" } 173 174# Parsing and validation 175base64 = "0.22.1" 176chrono = "0.4.39" 177hex = "0.4.3" 178# langtag = "0.3" 179# multibase = "0.9.1" 180# regex = "1.11.1" 181serde = { version = "1.0.218", features = ["derive"] } 182# serde_bytes = "0.11.17" 183# serde_html_form = "0.2.6" 184serde_json = "1.0.139" 185# unsigned-varint = "0.8" 186 187# Cryptography 188# ecdsa = "0.16.9" 189# elliptic-curve = "0.13.6" 190# jose-jwa = "0.1.2" 191# jose-jwk = { version = "0.1.2", default-features = false } 192# k256 = "0.13.4" 193# p256 = { version = "0.13.2", default-features = false } 194rand = "0.8.5" 195sha2 = "0.10.8" 196 197# Networking 198# dashmap = "6.1.0" 199futures = "0.3.31" 200# hickory-proto = { version = "0.24.3", default-features = false } 201# hickory-resolver = "0.24.1" 202# http = "1.1.0" 203# lru = "0.12.4" 204# moka = "0.12.8" 205tokio = { version = "1.43.0", features = ["macros", "rt-multi-thread"] } 206tokio-util = { version = "0.7.13", features = ["io"] } 207 208# HTTP client integrations 209# isahc = "1.7.2" 210reqwest = { version = "0.12.12", features = ["json"] } 211 212# Errors 213anyhow = "1.0.96" 214thiserror = "2.0.11" 215 216# CLI 217clap = { version = "4.5.30", features = ["derive"] } 218# dirs = "5.0.1" 219 220# Testing 221# gloo-timers = { version = "0.3.0", features = ["futures"] } 222# mockito = "=1.6.1" 223 224# WebAssembly 225# wasm-bindgen-test = "0.3.41" 226# web-time = "1.1.0" 227# bumpalo = "~3.14.0" 228 229# Code generation 230# trait-variant = "0.1.2" 231 232# Others 233# base64ct = "=1.6.0" 234# litemap = "=0.7.4" 235# native-tls = "=0.2.13" 236# zerofrom = "=0.1.5" 237argon2 = { version = "0.5.3", features = ["std"] } 238axum = { version = "0.8.1", features = [ 239 "tower-log", 240 "form", 241 "macros", 242 "ws", 243 "json", 244] } 245azure_core = "0.22.0" 246azure_identity = "0.22.0" 247base32 = "0.5.1" 248clap-verbosity-flag = "3.0.2" 249constcat = "0.6.0" 250figment = { version = "0.10.19", features = ["toml", "env"] } 251http-cache-reqwest = { version = "0.15.1", default-features = false, features = [ 252 "manager-moka", 253] } 254memmap2 = "0.9.5" 255metrics = "0.24.1" 256metrics-exporter-prometheus = "0.16.2" 257reqwest-middleware = { version = "0.4.0", features = ["json"] } 258tower-http = { version = "0.6.2", features = ["cors", "fs", "trace"] } 259tracing = "0.1.41" 260tracing-subscriber = "0.3.19" 261url = "2.5.4" 262uuid = { version = "1.14.0", features = ["v4"] } 263urlencoding = "2.1.3" 264# lazy_static = "1.5.0" 265secp256k1 = "0.28.2" 266dotenvy = "0.15.7" 267deadpool-diesel = { version = "0.6.1", features = [ 268 "serde", 269 "sqlite", 270 "tracing", 271] } 272ubyte = "0.10.4"