Files
teapawt/Cargo.toml
T
2026-10-24 18:03:27 +00:00

138 lines
4.0 KiB
TOML

[package]
name = "teapot"
version = "0.19.1"
edition = "2024"
rust-version = "1.96.1"
authors = [ "Amaan Qureshi <[email protected]>" ]
description = "teapawt — a privacy-focused Twitter/X frontend (teapot fork)"
license = "AGPL-3.0-only"
repository = "https://github.com/4cuck/teapawt"
keywords = [ "twitter", "privacy", "frontend", "teapawt" ]
categories = [ "web-programming::http-server" ]
[dependencies]
axum = { features = [ "macros" ], version = "0.8.9" }
axum-extra = { features = [ "cookie" ], version = "0.12.6" }
bytes = "1.12.1"
data-encoding = "2.11.0"
eyre = "0.6.12"
form_urlencoded = "1.2.2"
futures-core = "0.3.33"
http-body = "1.1.0"
http-body-util = "0.1.4"
indexmap = "2.14.0"
maud = { features = [ "axum" ], version = "0.27.0" }
percent-encoding = "2.3.2"
# Browser-impersonating client: each account presents a real browser's TLS
# and HTTP/2 fingerprint. HTTP/3 is left out on purpose; X does not serve it.
primp = {
default-features = false,
features = [
"gzip",
"brotli",
"zstd",
"deflate",
"stream",
],
version = "2.0.0",
}
regex = "1.13.1"
reqwest = { version = "0.12.23", default-features = false, features = [ "json", "rustls-tls" ] }
ring = "0.17.14"
serde = { features = [ "derive" ], version = "1.0.228" }
serde_json = "1.0.150"
thiserror = "2.0.18"
time = { features = [ "formatting", "parsing", "macros", "serde" ], version = "0.3.53" }
tokio = {
features = [
"rt-multi-thread",
"net",
"macros",
"sync",
"fs",
"io-util",
"process",
"time",
],
version = "1.53.0",
}
toml = "1.1.3"
tower = { features = [ "limit", "util" ], version = "0.5.3" }
tower-http = {
features = [
"fs",
"cors",
"compression-gzip",
"normalize-path",
"set-header",
"timeout",
],
version = "0.7.0",
}
tracing = "0.1.44"
tracing-subscriber = { features = [ "env-filter" ], version = "0.3.23" }
xitter-txid = "0.2.0"
[dev-dependencies]
tokio-test = "0.4.5"
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 2
[profile.release]
codegen-units = 1
lto = true
opt-level = "s"
panic = "abort"
strip = true
[lints.clippy]
cargo = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
blanket_clippy_restriction_lints = "allow"
restriction = { level = "warn", priority = -1 }
arbitrary_source_item_ordering = "allow"
arithmetic_side_effects = "allow"
as_conversions = "allow"
default_numeric_fallback = "allow"
else_if_without_else = "allow"
error_impl_error = "allow"
exhaustive_structs = "allow"
expect_used = "allow"
float_arithmetic = "allow"
implicit_return = "allow"
indexing_slicing = "allow"
integer_division = "allow"
integer_division_remainder_used = "allow"
let_underscore_must_use = "allow"
let_underscore_untyped = "allow"
map_err_ignore = "allow"
missing_docs_in_private_items = "allow"
mod_module_files = "allow"
multiple_crate_versions = "allow"
needless_borrowed_reference = "allow"
non_ascii_literal = "allow"
pub_use = "allow"
question_mark_used = "allow"
ref_patterns = "allow"
semicolon_outside_block = "allow"
separated_literal_suffix = "allow"
shadow_reuse = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
std_instead_of_alloc = "allow"
std_instead_of_core = "allow"
string_slice = "allow"
too_many_lines = "allow"
unimplemented = "allow"
unreachable = "allow"
unwrap_in_result = "allow"
unwrap_used = "allow"
wildcard_enum_match_arm = "allow"