The smokesignal.events web application
1[package]
2name = "smokesignal"
3version = "1.0.2"
4edition = "2024"
5rust-version = "1.90"
6authors = ["Nick Gerakines <nick.gerakines@gmail.com>"]
7description = "An event and RSVP management application."
8readme = "README.md"
9homepage = "https://smokesignal.events/"
10repository = "https://tangled.sh/@smokesignal.events/smokesignal"
11license = "MIT"
12build = "build.rs"
13publish = false
14include = ["/src", "/templates", "/static", "/i18n", "/migrations", "/build.rs", "/LICENSE", "/README.md", "/Dockerfile"]
15default-run = "smokesignal"
16
17[features]
18default = ["reload", "s3"]
19embed = ["dep:minijinja-embed"]
20reload = ["dep:minijinja-autoreload", "minijinja/loader"]
21s3 = ["dep:minio"]
22
23[build-dependencies]
24minijinja-embed = {version = "2.7"}
25serde_json = "1.0"
26
27[dependencies]
28atproto-client = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs" }
29atproto-attestation = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs" }
30atproto-identity = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs", features = ["lru", "zeroize", "hickory-dns"] }
31atproto-tap = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs" }
32atproto-oauth = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs", features = ["lru", "zeroize"] }
33atproto-oauth-axum = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs", features = ["zeroize"] }
34atproto-record = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs" }
35atproto-xrpcs = { git = "https://tangled.org/@smokesignal.events/atproto-identity-rs" }
36
37ammonia = "4"
38anyhow = "1.0"
39async-trait = "0.1"
40axum = { version = "0.8", features = ["http2", "macros", "multipart"] }
41axum-extra = { version = "0.12", features = ["cookie", "cookie-private", "form", "query", "cookie-key-expansion", "typed-header", "typed-routing", "cached"] }
42axum-htmx = { version = "0.8", features = ["auto-vary"] }
43axum-template = { version = "3.0", features = ["minijinja-autoreload", "minijinja"] }
44base64 = "0.22"
45bloomfilter = "3"
46bytes = "1.10"
47chrono = { version = "0.4", default-features = false, features = ["std", "alloc", "now", "serde"] }
48chrono-tz = { version = "0.10", features = ["serde"] }
49cookie = "0.18"
50crockford = "1.2"
51css-inline = "0.18"
52deadpool-redis = {version = "0.22", features = ["connection-manager", "tokio-comp", "tokio-rustls-comp"] }
53elliptic-curve = { version = "0.13", features = ["pem", "pkcs8", "sec1", "std", "alloc", "digest", "ecdh", "jwk", "bits"] }
54fluent = "0.17"
55fluent-bundle = "0.16"
56fluent-syntax = "0.12"
57hex = "0.4.3"
58hmac = "0.12"
59http = "1.1"
60icalendar = "0.17"
61image = "0.25"
62intl-memoizer = "0.5"
63itertools = "0.14"
64lettre = {version = "0.11", default-features = false, features = ["builder", "hostname", "pool", "smtp-transport", "rustls-tls", "tokio1-rustls-tls"]}
65lru = "0.16"
66metrohash = "1.0"
67minify-html-onepass = "0.18"
68minijinja = { version = "2.7", features = ["builtins", "json", "urlencode"] }
69minijinja-autoreload = { version = "2.7", optional = true }
70minijinja-embed = { version = "2.7", optional = true }
71minio = { version = "0.3", optional = true }
72once_cell = "1.19"
73opensearch = { version = "2.3", default-features = false, features = ["rustls-tls"] }
74ordermap = { version = "1", features = ["serde"] }
75p256 = { version = "0.13", features = ["ecdsa-core", "jwk", "serde", "ecdh"] }
76rand = "0.9"
77regex = "1"
78reqwest = { version = "0.12", features = ["json", "zstd", "rustls-tls"] }
79rust-embed = "8.5"
80serde = { version = "1.0", features = ["alloc", "derive"] }
81serde_json = { version = "1.0", features = ["alloc"] }
82sha2 = "0.10"
83sqlx = { version = "0.8", default-features = false, features = ["derive", "macros", "migrate", "json", "runtime-tokio", "postgres", "chrono", "tls-rustls-ring-native-roots"] }
84thiserror = "2.0"
85tokio = { version = "1.41", features = ["bytes", "macros", "net", "rt", "rt-multi-thread", "signal", "sync"] }
86tokio-stream = "0.1"
87tokio-util = { version = "0.7", features = ["net", "rt", "tracing"] }
88tower-http = { version = "0.6", features = ["cors", "fs", "timeout", "trace", "tracing"] }
89tracing = { version = "0.1", features = ["async-await", "log", "valuable"] }
90tracing-subscriber = { version = "0.3", features = ["env-filter", "chrono", "json"] }
91ulid = { version = "1.1", features = ["serde"] }
92unic-langid = "0.9"
93url = "2.5"
94urlencoding = "2.1"
95base32 = "0.5.1"
96futures = { version = "0.3.31", default-features = false, features = ["alloc"] }
97h3o = "0.6"
98
99[profile.release]
100opt-level = 3
101lto = true
102strip = true
103
104[lints.rust]
105unsafe_code = "forbid"