reaction/Cargo.toml

85 lines
2.7 KiB
TOML

[package]
name = "reaction"
version = "2.2.1"
edition = "2024"
authors = ["ppom <reaction@ppom.me>"]
license = "AGPL-3.0"
description = "Scan logs and take action"
readme = "README.md"
homepage = "https://reaction.ppom.me"
repository = "https://framagit.org/ppom/reaction"
keywords = ["security", "sysadmin", "fail2ban", "logs", "monitoring"]
build = "build.rs"
default-run = "reaction"
[package.metadata.deb]
section = "net"
extended-description = """A daemon that scans program outputs for repeated patterns, and takes action.
A common usage is to scan ssh and webserver logs, and to ban hosts that cause multiple authentication errors.
reaction aims at being a successor to fail2ban."""
maintainer-scripts = "packaging/"
systemd-units = { enable = false }
assets = [
# Executables
[ "target/release/reaction", "/usr/bin/reaction", "755" ],
[ "target/release/ip46tables", "/usr/bin/ip46tables", "755" ],
[ "target/release/nft46", "/usr/bin/nft46", "755" ],
# Man pages
[ "target/release/reaction*.1", "/usr/share/man/man1/", "644" ],
# Shell completions
[ "target/release/reaction.bash", "/usr/share/bash-completion/completions/reaction", "644" ],
[ "target/release/reaction.fish", "/usr/share/fish/completions/", "644" ],
[ "target/release/_reaction", "/usr/share/zsh/vendor-completions/", "644" ],
]
[dependencies]
# Time types
chrono = { version = "0.4.38", features = ["std", "clock", "serde"] }
# CLI parsing
clap = { version = "4.5.4", features = ["derive"] }
# Unix interfaces
nix = { version = "0.29.0", features = ["signal"] }
num_cpus = "1.16.0"
# Regex matching
regex = "1.10.4"
# Configuration languages, ser/deserialisation
serde.workspace = true
serde_json.workspace = true
serde_yaml = "0.9.34"
jrsonnet-evaluator = "0.4.2"
# Error macro
thiserror = "1.0.63"
# Async runtime & helpers
futures = "0.3.30"
tokio = { workspace = true, features = ["full", "tracing"] }
tokio-util = { version = "0.7.12", features = ["codec"] }
# Async logging
tracing = "0.1.40"
tracing-subscriber = "0.3.18"
# Reaction plugin system
remoc = { workspace = true }
reaction-plugin = { workspace = true }
[build-dependencies]
clap = { version = "4.5.4", features = ["derive"] }
clap_complete = "4.5.2"
clap_mangen = "0.2.24"
regex = "1.10.4"
tracing = "0.1.40"
[dev-dependencies]
rand = "0.8.5"
tempfile = "3.12.0"
assert_fs = "1.1.3"
assert_cmd = "2.0.17"
predicates = "3.1.3"
[workspace]
members = ["plugins/reaction-plugin", "plugins/reaction-plugin-cluster", "plugins/reaction-plugin-virtual"]
[workspace.dependencies]
remoc = { version = "0.18.3" }
serde = { version = "1.0.203", features = ["derive"] }
serde_json = "1.0.117"
tokio = { version = "1.40.0" }
reaction-plugin = { path = "plugins/reaction-plugin" }