atproto blogging
1[package]
2name = "weaver-index"
3version.workspace = true
4edition.workspace = true
5license.workspace = true
6publish = false
7default-run = "indexer"
8
9[features]
10default = []
11
12[[bin]]
13name = "storage-benchmark"
14path = "src/bin/storage_benchmark.rs"
15
16[[bin]]
17name = "indexer"
18path = "src/bin/weaver_indexer.rs"
19
20
21[dependencies]
22# Internal
23weaver-api = { path = "../weaver-api", features = ["streaming"] }
24weaver-common = { path = "../weaver-common", features = ["telemetry"] }
25
26# AT Protocol / Jacquard
27jacquard = { workspace = true, features = ["websocket", "zstd", "dns", "cache"] }
28jacquard-common = { workspace = true, features = ["service-auth","crypto-ed25519"] }
29jacquard-repo = { workspace = true }
30jacquard-axum = { workspace = true }
31
32# Crypto (for service identity keypair)
33k256 = { version = "0.13", features = ["ecdsa"] }
34rand = "0.8"
35
36# ClickHouse
37clickhouse = { version = "0.14", features = ["inserter", "chrono", "rustls-tls-ring", "rustls-tls-webpki-roots"] }
38
39# Serialization
40serde = { workspace = true }
41serde_json = "1.0"
42serde_ipld_dagcbor = "0.6"
43ciborium = "0.2"
44
45# Async runtime
46tokio = { version = "1.44", features = ["full"] }
47n0-future = { workspace = true }
48
49# Error handling
50miette = { workspace = true, features = ["fancy"] }
51thiserror = { workspace = true }
52
53# Config / CLI
54clap = { version = "4.5", features = ["derive", "env"] }
55dotenvy = "0.15"
56
57# Tracing
58tracing = { workspace = true }
59tracing-subscriber = { version = "0.3", features = ["env-filter"] }
60
61# Data types
62bytes = { workspace = true }
63url = "2"
64chrono = { version = "0.4", features = ["serde"] }
65smol_str = "0.3"
66
67# CRDT (for parsing draft snapshots)
68loro = { workspace = true }
69
70# CID handling (for CAR block lookups)
71cid = "0.11"
72
73# Utilities
74humansize = "2.0"
75base64 = "0.22"
76dashmap = "6"
77include_dir = "0.7.4"
78regex = "1"
79mini-moka = { git = "https://github.com/moka-rs/mini-moka", rev = "da864e849f5d034f32e02197fee9bb5d5af36d3d" }
80
81# WebSocket (for tap consumer)
82tokio-tungstenite = { version = "0.26", features = ["native-tls"] }
83futures-util = "0.3"
84
85# HTTP server
86axum = { version = "0.8.7", features = ["macros"] }
87tower = "0.5.2"
88tower-http = { version = "0.6.7", features = ["trace", "cors"] }
89
90# SQLite (shard storage)
91rusqlite = { version = "0.37.0", features = ["bundled"] }
92rusqlite_migration = { version = "2.1.0", features = ["from-directory"] }