-
Notifications
You must be signed in to change notification settings - Fork 80
Expand file tree
/
Copy pathCargo.toml
More file actions
128 lines (120 loc) · 5.74 KB
/
Copy pathCargo.toml
File metadata and controls
128 lines (120 loc) · 5.74 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
[package]
name = "oura"
description = "The tail of Cardano"
version = "2.2.0"
edition = "2021"
repository = "https://github.com/txpipe/oura"
homepage = "https://github.com/txpipe/oura"
documentation = "https://docs.rs/oura"
license = "Apache-2.0"
readme = "README.md"
authors = ["TxPipe <hello@txpipe.io>"]
[features]
wasm = ["extism"]
aws = ["aws-config", "aws-types", "aws-sdk-sqs", "aws-sdk-lambda", "aws-sdk-s3"]
sql = ["sqlx", "handlebars"]
gcp = ["google-cloud-pubsub", "google-cloud-googleapis", "jsonwebtoken"]
rabbitmq = ["lapin"]
zeromq = ["zmq"]
u5c = ["utxorpc", "futures"]
mithril = ["mithril-client"]
hydra = ["tungstenite", "tokio-tungstenite", "futures-util", "bytes"]
# kafka's only TLS backend is openssl-sys; pull vendored OpenSSL alongside it so
# `--features kafka` (and `--all-features`) build on targets without a system
# OpenSSL (e.g. windows-msvc). Not part of the default/release bundle.
kafka = ["dep:kafka", "openssl"]
# elasticsearch = auto feature flag
# Features enabled in the cargo-dist released binaries (installers, archives).
# "Batteries included": every integration that builds cleanly across all release
# targets (incl. windows-msvc) ships by default, so consumers rarely need to
# compile a custom flavor. The bundle is fully pure-Rust TLS (rustls, no system
# OpenSSL). Measured stripped size (dist profile): ~37 MB.
#
# Kept OUT of the default binary (available via a source build) to keep the
# release lean and free of system/C dependencies:
# - kafka: its only TLS backend is openssl-sys; bundling it would pull a
# vendored OpenSSL build into the otherwise pure-Rust-TLS binary
# - zeromq: dynamically links a system libzmq (a runtime dependency), so it
# can't ship in a portable prebuilt binary
# - mithril: builds everywhere, but pulls a heavy GMP/blst C-crypto toolchain
# (gmp-mpfr-sys, blst, rug) that bloats binary size and build time
# - wasm: extism/wasmtime; pure-Rust but ~+14 MB and itself a plugin runtime
[package.metadata.dist]
features = ["u5c", "elasticsearch", "hydra", "redis", "rabbitmq", "sql", "gcp", "aws"]
[dependencies]
pallas = { version = "1.1", features = ["hardano"] }
# pallas = { path = "../pallas/pallas", features = ["hardano"] }
# pallas = { git = "https://github.com/txpipe/pallas", features = ["hardano"] }
# 0.11.1 replaced gasket-prometheus's prometheus_exporter_base exporter (and its
# legacy TLS/HTTP stack) with a lightweight metrics endpoint.
gasket = { version = "0.11.1", features = ["derive"] }
gasket-prometheus = { version = "0.11.1" }
# gasket = { path = "../../construkts/gasket-rs/gasket", features = ["derive"] }
hex = "0.4.3"
bech32 = "0.11"
clap = { version = "4.2.7", features = ["derive"] }
env_logger = "0.10.0"
crossterm = "0.26"
merge = "0.1.0"
regex = "1.10.5"
handlebars = { version = "^5.1", optional = true }
config = { version = "0.13.2", default-features = false, features = ["toml", "json"] }
serde = { version = "1.0.152", features = ["derive"] }
serde_json = { version = "1.0.104", features = ["arbitrary_precision"] }
strum = "0.26"
strum_macros = "0.25"
unicode-truncate = "0.2.0"
thiserror = "1.0.39"
indicatif = "0.17.8"
tracing = "0.1.37"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
anyhow = "1.0.77"
file-rotate = { version = "0.7.5" }
reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "rustls-tls"] }
tokio = { version = "1", features = ["rt", "rt-multi-thread"] }
async-trait = "0.1.68"
elasticsearch = { version = "8.5.0-alpha.1", optional = true, default-features = false, features = ["rustls-tls"] }
murmur3 = { version = "0.5.2", optional = true }
# vendored OpenSSL, enabled only by the `kafka` feature (and `--all-features`);
# lets kafka's openssl-sys build without a system OpenSSL. See the `kafka` feature.
openssl = { version = "0.10", optional = true, features = ["vendored"] }
lapin = { version = "2.2.1", optional = true }
kafka = { version = "0.10.0", optional = true }
google-cloud-pubsub = { version = "0.30.0", optional = true, default-features = false, features = ["auth", "rustls-tls"] }
google-cloud-googleapis = { version = "0.16.1", optional = true }
jsonwebtoken = { version = "9.3.1", optional = true }
futures = { version = "0.3.28", optional = true }
sqlx = { version = "0.8", features = ["runtime-tokio", "tls-rustls-ring", "any", "sqlite", "postgres"], optional = true }
aws-config = { version = "^1.8", optional = true }
aws-types = { version = "^1.3", optional = true }
aws-sdk-s3 = { version = "^1.1", optional = true }
aws-sdk-sqs = { version = "^1.8", optional = true }
aws-sdk-lambda = { version = "^1.9", optional = true }
extism = { version = "1.2.0", optional = true }
mithril-client = { version = "^0.12.11", optional = true, features = ["fs"] }
miette = { version = "7.2.0", features = ["fancy"] }
itertools = "0.14.0"
redis = { version = "0.27.6", optional = true }
utxorpc = { version = "0.14.0", optional = true }
# used to install a process-default rustls CryptoProvider so multi-provider
# builds (any combination of TLS features) don't panic on the first handshake
rustls = { version = "0.23", default-features = false, features = ["ring"] }
tungstenite = { version = "0.24.0", optional = true }
tokio-tungstenite = { version = "0.24.0", optional = true }
futures-util = { version = "0.3", optional = true }
bytes = { version = "1.7.2", optional = true }
zmq = { version = "0.10.0", optional = true }
[dev-dependencies]
goldenfile = "1.7.3"
tempfile = "3.4"
port-selector = "0.1.6"
# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"
[workspace.metadata.release]
push = false
publish = false
tag-name = "v{{version}}"
pre-release-commit-message = "release: v{{version}}"
pre-release-hook = ["git", "cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]