83 lines
2.3 KiB
TOML
83 lines
2.3 KiB
TOML
[package]
|
|
name = "hotdog"
|
|
version = "0.3.4"
|
|
authors = ["R. Tyler Croy <rtyler+hotdog@brokenco.de>"]
|
|
edition = "2018"
|
|
|
|
|
|
[features]
|
|
default = []
|
|
simd = ["simd-json"]
|
|
|
|
[dependencies]
|
|
# Base asynchronous runtime
|
|
async-std = { version = "~1.6.1", features = ["attributes"] }
|
|
async-trait = "0.1.31"
|
|
futures = { version = "~0.3.4", features = ["thread-pool"] }
|
|
|
|
# Needed for listening for TLS connections
|
|
async-tls = "~0.7.0"
|
|
rustls = "~0.17.0"
|
|
|
|
# Handling command line options
|
|
clap = { version = "~2.33.0", features = ["yaml"] }
|
|
# Needed for time management
|
|
chrono = "~0.4.11"
|
|
# Handling configuration overlays
|
|
config = { version = "~0.10.1", features = ["yaml"] }
|
|
dashmap = "~3.11.4"
|
|
# Needed to report metrics of hotdog's performance
|
|
dipstick = "~0.9.0"
|
|
# Used for string replacements and other template based transformations
|
|
handlebars = "~3.0.1"
|
|
# used for rule matching on JSON
|
|
# The "sync" feature is undocumented but required in order to swap Rc for Arc
|
|
# in the crate, allowing it to be used with futures and threads properly
|
|
jmespath = { git = "https://github.com/jmespath/jmespath.rs", features = ["sync"] }
|
|
# Logging
|
|
log = "~0.4.8"
|
|
# Faster locking primitives
|
|
parking_lot = "~0.10.2"
|
|
pretty_env_logger = "~0.3.1"
|
|
|
|
# Needed for forwarding messages along to Kafka
|
|
# including the SSL and SASL features to ensure that this can authenticate
|
|
# against secure Kafka clusters, e.g. AWS MSK
|
|
rdkafka = { version = "~0.23.1", features = ["ssl", "sasl"]}
|
|
# Used for rule matching
|
|
regex = "~1.3.6"
|
|
|
|
# Needed for deserializing JSON messages _and_ managing our configuration
|
|
# effectively
|
|
serde = { version = "~1.0.106", features = ["rc"] }
|
|
serde_derive = "~1.0.106"
|
|
serde_json = "~1.0.0"
|
|
# Helpful to deserialize our regular expressions directly from the
|
|
# configuration file
|
|
serde_regex = "~0.4.0"
|
|
|
|
simd-json = { version = "~0.3.14", optional = true}
|
|
|
|
smol = "~0.1.18"
|
|
# Needed to do clever enum/derive tricks for strings
|
|
strum = "0.18.0"
|
|
strum_macros = "0.18.0"
|
|
|
|
# For parsing the syslog formatted messages
|
|
syslog_rfc5424 = "~0.6.1"
|
|
syslog_loose = "0.2.0"
|
|
|
|
# Needed for the http-based health checks
|
|
tide = "~0.14"
|
|
|
|
# Needed to tag rules and actions with their own unique identifiers
|
|
uuid = { version = "~0.8.1", features = ["v4"] }
|
|
|
|
# Optimize the heck out of the release build, I have no idea what these flags
|
|
# do
|
|
[profile.release]
|
|
panic = "abort"
|
|
lto = true
|
|
codegen-units=1
|
|
opt-level="s"
|