atproto blogging
1[package]
2name = "weaver-common"
3version.workspace = true
4edition.workspace = true
5license.workspace = true
6publish = false
7
8[features]
9default = [ "use-index"]
10native = ["jacquard/dns"]
11use-index = []
12iroh = ["dep:iroh", "dep:iroh-gossip", "dep:iroh-tickets"]
13telemetry = ["dep:metrics", "dep:metrics-exporter-prometheus", "dep:tracing-subscriber", "dep:tracing-loki", "dep:axum"]
14cache = ["dep:mini-moka-wasm"]
15perf = []
16
17[dependencies]
18n0-future = { workspace = true }
19weaver-api = { version = "0.1", path = "../weaver-api" }
20markdown-weaver = { workspace = true }
21http = "1.3.1"
22jacquard = { workspace = true }
23jacquard-common = { workspace = true }
24trait-variant = "0.1"
25serde = { workspace = true }
26serde_json = { version = "1.0.140", features = ["preserve_order", "raw_value"] }
27tokio = { version = "1.44", features = ["sync"] }
28miette = { workspace = true }
29thiserror = { workspace = true }
30tracing = { workspace = true }
31reqwest = { version = "0.12", default-features = false, features = [
32 "json",
33] }
34
35markdown-weaver-escape = { workspace = true, features = ["std"] }
36mime-sniffer = "^0.1"
37
38# Real-time collaboration transport (iroh P2P)
39chrono = "0.4"
40blake3 = { version = "1", default-features = false, features = ["pure"] }
41postcard = "1.1.1"
42rand = "0.9.2"
43web-time = "1"
44
45iroh = { version = "0.95", default-features = false, optional = true }
46iroh-gossip = { version = "0.95", default-features = false, features = ["net"], optional = true }
47iroh-tickets = { version = "0.2", optional = true }
48
49# Telemetry (optional, native-only)
50metrics = { version = "0.24.2", optional = true }
51metrics-exporter-prometheus = { version = "0.17.2", optional = true }
52tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"], optional = true }
53tracing-loki = { version = "0.2", optional = true }
54axum = { version = "0.8", optional = true }
55
56getrandom = { version = "0.3", features = [] }
57ring = { version = "0.17", default-features = false }
58
59# TTL cache (optional) - mini-moka-wasm works on both native and WASM
60mini-moka-wasm = { version = "0.10.99", optional = true }
61
62
63[target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dependencies]
64regex = "1.11.1"
65
66# wasm-in-browser dependencies
67[target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies]
68regex-lite = { version = "0.1" }
69futures-util = "0.3"
70js-sys = "0.3"
71pin-project = "1"
72wasm-bindgen = "0.2"
73wasm-bindgen-futures = "0.4"
74send_wrapper = "0.6"
75wasmworker = "0.1"
76wasmworker-proc-macro = "0.1"
77ring = { version = "0.17", default-features = false, features = ["wasm32_unknown_unknown_js"]}
78getrandom = { version = "0.3", default-features = false, features = ["wasm_js"] }
79web-sys = { version = "0.3", features = ["Window", "Performance"] }
80
81
82[dev-dependencies]
83tokio = { version = "1", features = ["macros", "rt"] }