-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
78 lines (70 loc) · 2.54 KB
/
Copy pathCargo.toml
File metadata and controls
78 lines (70 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[workspace]
members = ["clickhouse-c-rs", "bench"]
[package]
name = "walshadow"
version = "0.1.0"
edition = "2024"
description = "Schema-only Postgres + WAL replay catalog mirror for CDC to ClickHouse"
license = "AGPL-3.0-only"
[[bin]]
name = "walshadow-classify"
path = "src/bin/classify.rs"
[[bin]]
name = "walshadow-filter"
path = "src/bin/filter.rs"
[[bin]]
name = "walshadow-stream"
path = "src/bin/stream.rs"
[lib]
name = "walshadow"
path = "src/lib.rs"
[features]
# Compression codecs walshadow's CH-Native emitter advertises
# in its Hello packet & negotiates onto the wire. Forwarded to
# clickhouse-c-rs so its `chc_*_codec_init` symbols & C TU link only
# what the top crate actually offers. `lz4` matches the ClickHouse
# server default; flip `default-features = false` for an
# uncompressed-only build with neither codec lib linked.
default = ["lz4"]
lz4 = ["clickhouse-c-rs/lz4"]
zstd = ["clickhouse-c-rs/zstd"]
[dependencies]
wal-rus = "0.2"
clickhouse-c-rs = { path = "clickhouse-c-rs", default-features = false, features = ["tokio", "tls"] }
# hash keys are internal (relfilenodes, oids, xids, names), never network
# input, so SipHash's HashDoS margin buys nothing at 2-4x per probe
ahash = "0.8"
anyhow = "1"
astral-tokio-tar = { version = "0.6", default-features = false }
async-channel = "2.5"
async-trait = "0.1"
backon = { version = "1", features = ["tokio-sleep"] }
bytes = "1"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
clap = { version = "4", features = ["derive", "env"] }
crc32c = "0.6"
fallible-iterator = "0.2"
futures = "0.3"
libc = "0.2"
lz4 = "1"
pglz = "0.1"
postgres-protocol = "0.6"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
smallvec = "1"
thiserror = "2"
tokio = { version = "1", features = ["rt", "rt-multi-thread", "macros", "time", "net", "fs", "sync", "signal", "io-util"] }
tokio-postgres = "0.7"
tokio-util = { version = "0.7", features = ["io"] }
toml = { version = "1", default-features = false, features = ["parse", "display", "serde"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", default-features = false, features = ["env-filter", "fmt", "ansi"] }
zstd = "0.13"
opentelemetry = "0.32"
opentelemetry_sdk = { version = "0.32", features = ["rt-tokio"] }
opentelemetry-otlp = { version = "0.32", default-features = false, features = ["grpc-tonic", "trace"] }
tracing-opentelemetry = { version = "0.33", default-features = false }
mimalloc = "0.1.52"
[dev-dependencies]
tempfile = "3"
toml = { version = "1", default-features = false, features = ["parse", "display", "serde"] }