An ATProtocol powered blogging engine.
1[package]
2name = "blahg"
3version = "0.1.0"
4edition = "2024"
5
6[features]
7default = ["reload", "sqlite", "postgres", "s3"]
8embed = ["dep:minijinja-embed", "dep:rust-embed"]
9reload = ["dep:minijinja-autoreload", "minijinja/loader", "axum-template/minijinja-autoreload"]
10sqlite = ["sqlx/sqlite"]
11postgres = ["sqlx/postgres"]
12s3 = ["dep:minio"]
13
14[build-dependencies]
15minijinja-embed = {version = "2.7"}
16
17[dependencies]
18# ATProtocol dependencies
19atproto-client = { version = "0.9.5" }
20atproto-identity = { version = "0.9.5" }
21atproto-record = { version = "0.9.5" }
22atproto-jetstream = { version = "0.9.5" }
23
24# Web framework
25axum = "0.8"
26axum-template = { version = "3.0", features = ["minijinja"] }
27tower-http = { version = "0.5", features = ["fs"] }
28
29# Template engine
30minijinja = { version = "2.7", features = ["builtins", ] }
31minijinja-autoreload = { version = "2.7", optional = true }
32minijinja-embed = { version = "2.7", optional = true }
33rust-embed = { version = "8.5", optional = true }
34
35# Database
36sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "chrono", "json", "uuid"] }
37
38# Image processing
39image = "0.25"
40
41# Core dependencies
42anyhow = "1.0"
43async-trait = "0.1.88"
44base64 = "0.22.1"
45chrono = {version = "0.4.41", default-features = false, features = ["std", "now", "serde"]}
46duration-str = "0.11"
47ecdsa = { version = "0.16.9", features = ["std"] }
48elliptic-curve = { version = "0.13.8", features = ["jwk", "serde"] }
49hickory-resolver = { version = "0.25" }
50k256 = "0.13.4"
51lru = "0.12"
52multibase = "0.9.1"
53p256 = "0.13.2"
54reqwest = { version = "0.12", features = ["json", "rustls-tls"] }
55serde = { version = "1.0", features = ["derive"] }
56serde_ipld_dagcbor = "0.6.3"
57serde_json = "1.0"
58sha2 = "0.10.9"
59thiserror = "2.0"
60tokio = { version = "1.41", features = ["macros", "rt", "rt-multi-thread", "fs", "signal"] }
61tokio-util = { version = "0.7", features = ["rt"] }
62tracing = { version = "0.1", features = ["async-await"] }
63tracing-subscriber = { version = "0.3", features = ["registry", "env-filter"] }
64
65# Object storage
66minio = { version = "0.3", optional = true }
67bytes = "1.10.1"
68
69# Markdown rendering
70comrak = { version = "0.39", features = ["syntect"] }
71slugify = "0.1.0"
72bloomfilter = "1.0.15"
73
74[dev-dependencies]
75tempfile = "3.0"