Personal ATProto tools.
1[package]
2name = "atproto_teq"
3version = "0.1.0"
4edition = "2024"
5publish = false
6authors = ["Timothy Quilling <teqed@shatteredsky.net>"]
7exclude = ["dist", "build", "assets", "credits"]
8description = "My ATProtocol applications and tools."
9license = "MIT"
10readme = "README.md"
11repository = "~/_/Repos/atproto"
12keywords = ["bluesky", "atproto"]
13categories = ["bluesky", "atproto"]
14
15[profile.dev.package."*"]
16opt-level = 3
17
18[profile.dev]
19opt-level = 1
20
21[profile.release]
22opt-level = "s" # Slightly slows compile times, great improvements to file size and runtime performance.
23lto = "thin" # Do a second optimization pass over the entire program, including dependencies.
24codegen-units = 1 # Compile the entire crate as one unit.
25strip = "debuginfo" # Strip all debugging information from the binary to slightly reduce file size.
26
27[features]
28dev = [
29]
30
31[build-dependencies]
32embed-resource = "1"
33
34
35[lints.rust]
36## Groups
37warnings = { level = "warn", priority = -1 } # All lints that are set to issue warnings
38deprecated-safe = { level = "warn", priority = -1 } # Lints for functions which were erroneously marked as safe in the past
39future-incompatible = { level = "warn", priority = -1 } # Lints that detect code that has future-compatibility problems
40keyword-idents = { level = "warn", priority = -1 } # Lints that detect identifiers which will be come keywords in later editions
41let-underscore = { level = "warn", priority = -1 } # Lints that detect wildcard let bindings that are likely to be invalid
42nonstandard-style = { level = "warn", priority = -1 } # Violation of standard naming conventions
43refining-impl-trait = { level = "warn", priority = -1 } # Detects refinement of impl Trait return types by trait implementations
44rust-2018-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2015 edition to 2018
45rust-2021-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2018 edition to 2021
46rust-2018-idioms = { level = "warn", priority = -1 } # Lints to nudge you toward idiomatic features of Rust 2018
47rust-2024-compatibility = { level = "warn", priority = -1 } # Lints used to transition code from the 2021 edition to 2024
48unused = { level = "warn", priority = -1 } # Lints that detect things being declared but not used, or excess syntax
49## Individual
50ambiguous_negative_literals = "warn" # checks for cases that are confusing between a negative literal and a negation that's not part of the literal.
51closure_returning_async_block = "warn" # detects cases where users write a closure that returns an async block. # nightly
52ffi_unwind_calls = "warn"
53# fuzzy_provenance_casts = "warn" # unstable
54# lossy_provenance_casts = "warn" # unstable
55macro_use_extern_crate = "warn"
56meta_variable_misuse = "warn"
57missing_abi = "warn"
58missing_copy_implementations = "allow" # detects potentially-forgotten implementations of Copy for public types.
59missing_debug_implementations = "allow" # detects missing implementations of fmt::Debug for public types.
60missing_docs = "warn"
61# multiple_supertrait_upcastable = "warn" # unstable
62# must_not_suspend = "warn" # unstable
63non_ascii_idents = "warn"
64# non_exhaustive_omitted_patterns = "warn" # unstable
65redundant_imports = "warn"
66redundant_lifetimes = "warn"
67rust_2024_incompatible_pat = "warn" # nightly
68single_use_lifetimes = "warn"
69trivial_casts = "warn"
70trivial_numeric_casts = "warn"
71unit_bindings = "warn"
72unnameable_types = "warn"
73# unqualified_local_imports = "warn" # unstable
74unreachable_pub = "warn"
75unsafe_code = "forbid"
76unstable_features = "warn"
77# unused_crate_dependencies = "warn"
78unused_import_braces = "warn"
79unused_lifetimes = "warn"
80unused_qualifications = "warn"
81unused_results = "warn"
82variant_size_differences = "warn"
83elided_lifetimes_in_paths = "allow"
84# unstable-features = "allow"
85
86[lints.clippy]
87# Groups
88nursery = { level = "warn", priority = -1 }
89correctness = { level = "warn", priority = -1 }
90suspicious = { level = "warn", priority = -1 }
91complexity = { level = "warn", priority = -1 }
92perf = { level = "warn", priority = -1 }
93style = { level = "warn", priority = -1 }
94# pedantic = { level = "warn", priority = -1 }
95# restriction = { level = "warn", priority = -1 }
96cargo = { level = "warn", priority = -1 }
97# Temporary Allows
98single_call_fn = "allow"
99multiple_crate_versions = "allow"
100expect_used = "allow"
101# Style Allows
102implicit_return = "allow"
103self_named_module_files = "allow"
104else_if_without_else = "allow"
105std_instead_of_alloc = "allow"
106std_instead_of_core = "allow"
107blanket_clippy_restriction_lints = "allow"
108float_arithmetic = "allow"
109redundant_pub_crate = "allow"
110pub_with_shorthand = "allow"
111absolute_paths = "allow"
112module_name_repetitions = "allow"
113missing_trait_methods = "allow"
114separated_literal_suffix = "allow"
115exhaustive_structs = "allow"
116field_scoped_visibility_modifiers = "allow"
117allow_attributes_without_reason = "allow"
118# Warns
119missing_docs_in_private_items = "warn"
120use_self = "warn"
121str_to_string = "warn"
122print_stdout = "warn"
123unseparated_literal_suffix = "warn"
124unwrap_used = "warn"
125# Denys
126enum_glob_use = "deny"
127# expect_used = "deny"
128
129[dependencies]
130atrium-api = { version = "0.24.10", default-features = false, features = [
131 "namespace-appbsky",
132] }
133axum = {version = "0.8.1", features = ["ws"]}
134axum-extra = {version = "0.10.0", features = ["typed-header"]}
135base64 = "0.22.1"
136bs58 = "0.5.1"
137bytes = "1.10.0"
138chrono = "0.4.39"
139# derive_more = "2.0.1"
140dotenvy = "0.15.7"
141futures = "0.3.31"
142headers = "0.4.0"
143hex = "0.4.3"
144hmac = "0.12.1"
145http = "1.2.0"
146jetstream-oxide = "0.1.1"
147num = "0.4.3"
148num-derive = "0.4.2"
149num-traits = "0.2.19"
150rand = "0.9.0"
151rand_core = { version = "0.6.4" }
152# nutype = "0.6.0"
153reqwest = { version = "0.12.12", features = ["json"] }
154secp256k1 = { version = "0.30.0", features = ["hashes", "rand", "serde"] }
155serde = { version = "1.0.217", features = ["derive"] }
156serde_bytes = "0.11.15"
157serde_cbor = "0.11.2"
158serde_json = "1.0.138"
159sha2 = "0.10.8"
160sqlx = { version = "0.8.3", features= ["chrono", "json", "macros", "sqlite", "runtime-tokio", "tls-rustls-ring-native-roots"] }
161tokio = { version = "1.43.0", features = ["full"] }
162tower-http = {version = "0.6.2", features = ["compression-full", "decompression-deflate", "fs", "trace"]}
163tracing = "0.1"
164tracing-subscriber = { version = "0.3", features = ["env-filter"] }