forked from
smokesignal.events/smokesignal
i18n+filtering fork - fluent-templates v2
1[package]
2name = "smokesignal"
3version = "1.0.2"
4edition = "2021"
5rust-version = "1.83"
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[lib]
18name = "smokesignal"
19path = "src/lib.rs"
20
21[[bin]]
22name = "i18n-tester"
23path = "src/bin/i18n_tester.rs"
24
25[features]
26default = ["reload"]
27embed = ["dep:minijinja-embed"]
28reload = ["dep:minijinja-autoreload", "minijinja/loader"]
29
30[build-dependencies]
31minijinja-embed = {version = "2.7"}
32
33[dependencies]
34anyhow = "1.0"
35async-trait = "0.1"
36axum-extra = { version = "0.10", features = ["cookie", "cookie-private", "form", "query", "cookie-key-expansion", "typed-header", "typed-routing"] }
37axum = { version = "0.8", features = ["http2", "macros"] }
38axum-template = { version = "3.0", features = ["minijinja-autoreload", "minijinja"] }
39base64 = "0.22"
40chrono-tz = { version = "0.10", features = ["serde"] }
41chrono = { version = "0.4", default-features = false, features = ["std", "alloc", "now", "serde"] }
42futures-util = { version = "0.3", features = ["sink"] }
43headers = "0.4"
44html-escape = "0.2"
45http = "1.1"
46regex = "1.10"
47serde_json = { version = "1.0", features = ["alloc"] }
48serde = { version = "1.0", features = ["alloc", "derive"] }
49thiserror = "2.0"
50tokio-util = { version = "0.7", features = ["net", "rt", "tracing"] }
51tokio = { version = "1.41", features = ["bytes", "macros", "net", "rt", "rt-multi-thread", "signal", "sync"] }
52tower-http = { version = "0.6", features = ["cors", "fs", "timeout", "trace", "tracing"] }
53tower = { version = "0.5", features = ["limit", "timeout", "tokio", "tracing"] }
54tracing-subscriber = { version = "0.3", features = ["env-filter", "chrono", "json"] }
55tracing = { version = "0.1", features = ["async-await", "log", "valuable"] }
56reqwest = { version = "0.12", features = ["json", "zstd", "rustls-tls"] }
57reqwest-chain = "1"
58reqwest-middleware = { version = "0.4", features = ["http2", "json", "multipart"] }
59reqwest-retry = "0.7"
60duration-str = "0.11"
61minijinja = { version = "2.7", features = ["builtins", "json", "urlencode"] }
62minijinja-autoreload = { version = "2.7", optional = true }
63minijinja-embed = { version = "2.7", optional = true }
64axum-htmx = { version = "0.7", features = ["auto-vary"] }
65hickory-resolver = { version = "0.24", features = ["dns-over-https-rustls", "dns-over-rustls", "rustls", "tokio-rustls"] }
66cityhasher = "0.1"
67rand = "0.8"
68async-stream = "0.3"
69tokio-stream = "0.1"
70url = "2.5"
71cookie = "0.18"
72ammonia = "4"
73rust-embed = "8.5"
74sqlx = { version = "0.8", default-features = false, features = ["derive", "macros", "migrate", "json", "runtime-tokio", "postgres", "chrono", "tls-rustls-ring-native-roots"] }
75elliptic-curve = { version = "0.13.8", features = ["pem", "pkcs8", "sec1", "std", "alloc", "digest", "ecdh", "jwk", "bits"] }
76p256 = { version = "0.13.2", features = ["ecdsa-core", "jwk", "serde", "ecdh"] }
77ordermap = "0.5"
78urlencoding = "2.1"
79ulid = { version = "1.1", features = ["serde"] }
80unic-langid = "0.9"
81intl-memoizer = "0.5"
82fluent = "0.16"
83fluent-bundle = "0.15"
84fluent-syntax = "0.11"
85sha2 = "0.10.8"
86redis = { version = "0.28", features = ["tokio-comp", "tokio-rustls-comp"] }
87itertools = "0.14.0"
88deadpool = "0.12.2"
89deadpool-redis = {version = "0.20.0", features = ["connection-manager", "tokio-comp", "tokio-rustls-comp"] }
90crockford = "1.2.1"
91tokio-websockets = { version = "0.11.3", features = ["client", "rand", "ring", "rustls-native-roots"] }
92zstd = "0.13.3"
93once_cell = "1.19"
94parking_lot = "0.12"
95metrohash = "1.0.7"
96fluent-templates = { version = "0.13.0", features = ["handlebars"] }
97serde_urlencoded = "0.7.1"
98ics = "0.5"
99
100[dev-dependencies]
101# Testing dependencies for comprehensive i18n test suite
102tokio-test = "0.4"
103tempfile = "3.10"
104serial_test = "3.1"
105criterion = { version = "0.5", features = ["html_reports"] }
106proptest = "1.5"
107mockall = "0.13"
108wiremock = "0.6"
109
110[profile.release]
111opt-level = 3
112lto = true
113strip = true
114
115[lints.rust]
116unsafe_code = "forbid"