mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-17 01:30:33 +00:00
- Add core event notification interfaces - Support multiple notification backends: - Webhook (default) - Kafka - MQTT - HTTP Producer - Implement configurable event filtering - Add async event dispatching with backpressure handling - Provide serialization/deserialization for event payloads This module enables system events to be published to various endpoints with consistent delivery guarantees and failure handling.
169 lines
5.3 KiB
TOML
169 lines
5.3 KiB
TOML
[workspace]
|
|
members = [
|
|
"madmin", # Management dashboard and admin API interface
|
|
"rustfs", # Core file system implementation
|
|
"ecstore", # Erasure coding storage implementation
|
|
"e2e_test", # End-to-end test suite
|
|
"common/common", # Shared utilities and data structures
|
|
"common/lock", # Distributed locking implementation
|
|
"common/protos", # Protocol buffer definitions
|
|
"common/workers", # Worker thread pools and task scheduling
|
|
"iam", # Identity and Access Management
|
|
"crypto", # Cryptography and security features
|
|
"cli/rustfs-gui", # Graphical user interface client
|
|
"crates/obs", # Observability utilities
|
|
"s3select/api",
|
|
"s3select/query",
|
|
"appauth",
|
|
"crates/event-notifier",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
edition = "2021"
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/rustfs/rustfs"
|
|
rust-version = "1.75"
|
|
version = "0.0.1"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "deny"
|
|
|
|
[workspace.lints.clippy]
|
|
all = "warn"
|
|
|
|
[workspace.dependencies]
|
|
madmin = { path = "./madmin" }
|
|
atoi = "2.0.0"
|
|
async-recursion = "1.1.1"
|
|
async-trait = "0.1.88"
|
|
atomic_enum = "0.3.0"
|
|
axum = "0.8.3"
|
|
axum-extra = "0.10.1"
|
|
axum-server = { version = "0.7.2", features = ["tls-rustls"] }
|
|
backon = "1.5.0"
|
|
bytes = "1.10.1"
|
|
bytesize = "1.3.3"
|
|
chrono = { version = "0.4.40", features = ["serde"] }
|
|
clap = { version = "4.5.35", features = ["derive", "env"] }
|
|
config = "0.15.11"
|
|
datafusion = "46.0.0"
|
|
derive_builder = "0.20.2"
|
|
dioxus = { version = "0.6.3", features = ["router"] }
|
|
dirs = "6.0.0"
|
|
dotenv = "0.15.0"
|
|
ecstore = { path = "./ecstore" }
|
|
figment = { version = "0.10.19", features = ["toml", "yaml", "env"] }
|
|
flatbuffers = "25.2.10"
|
|
futures = "0.3.31"
|
|
futures-util = "0.3.31"
|
|
common = { path = "./common/common" }
|
|
policy = { path = "./policy" }
|
|
hex = "0.4.3"
|
|
hyper = "1.6.0"
|
|
hyper-util = { version = "0.1.11", features = [
|
|
"tokio",
|
|
"server-auto",
|
|
"server-graceful",
|
|
] }
|
|
http = "1.3.1"
|
|
http-body = "1.0.1"
|
|
humantime = "2.2.0"
|
|
jsonwebtoken = "9.3.1"
|
|
keyring = { version = "3.6.2", features = ["apple-native", "windows-native", "sync-secret-service"] }
|
|
lock = { path = "./common/lock" }
|
|
lazy_static = "1.5.0"
|
|
libsystemd = { version = "0.7.1" }
|
|
local-ip-address = "0.6.3"
|
|
matchit = "0.8.4"
|
|
md-5 = "0.10.6"
|
|
mime = "0.3.17"
|
|
netif = "0.1.6"
|
|
opentelemetry = { version = "0.29.1" }
|
|
opentelemetry-appender-tracing = { version = "0.29.1", features = ["experimental_use_tracing_span_context", "experimental_metadata_attributes"] }
|
|
opentelemetry_sdk = { version = "0.29.0" }
|
|
opentelemetry-stdout = { version = "0.29.0" }
|
|
opentelemetry-otlp = { version = "0.29.0" }
|
|
opentelemetry-prometheus = { version = "0.29.1" }
|
|
opentelemetry-semantic-conventions = { version = "0.29.0", features = ["semconv_experimental"] }
|
|
parking_lot = "0.12.3"
|
|
pin-project-lite = "0.2.16"
|
|
prometheus = "0.14.0"
|
|
# pin-utils = "0.1.0"
|
|
prost = "0.13.5"
|
|
prost-build = "0.13.5"
|
|
prost-types = "0.13.5"
|
|
protobuf = "3.7"
|
|
protos = { path = "./common/protos" }
|
|
rand = "0.8.5"
|
|
rdkafka = { version = "0.37.0", features = ["tokio"] }
|
|
reqwest = { version = "0.12.15", default-features = false, features = ["rustls-tls", "charset", "http2", "macos-system-configuration", "stream", "json", "blocking"] }
|
|
rfd = { version = "0.15.3", default-features = false, features = ["xdg-portal", "tokio"] }
|
|
rmp = "0.8.14"
|
|
rmp-serde = "1.3.0"
|
|
rumqttc = { version = "0.24" }
|
|
rustfs-obs = { path = "crates/obs", version = "0.0.1" }
|
|
rustfs-event-notifier = { path = "crates/event-notifier", version = "0.0.1" }
|
|
rust-embed = "8.7.0"
|
|
rustls = { version = "0.23.26" }
|
|
rustls-pki-types = "1.11.0"
|
|
rustls-pemfile = "2.2.0"
|
|
s3s = { git = "https://github.com/Nugine/s3s.git", rev = "4733cdfb27b2713e832967232cbff413bb768c10" }
|
|
s3s-policy = { git = "https://github.com/Nugine/s3s.git", rev = "4733cdfb27b2713e832967232cbff413bb768c10" }
|
|
shadow-rs = { version = "1.1.1", default-features = false, features = ["metadata"] }
|
|
serde = { version = "1.0.219", features = ["derive"] }
|
|
serde_json = "1.0.140"
|
|
serde_urlencoded = "0.7.1"
|
|
serde_with = "3.12.0"
|
|
smallvec = { version = "1.15.0", features = ["serde"] }
|
|
strum = { version = "0.27.1", features = ["derive"] }
|
|
sha2 = "0.10.8"
|
|
snafu = "0.8.5"
|
|
tempfile = "3.19.1"
|
|
test-case = "3.3.1"
|
|
thiserror = "2.0.12"
|
|
time = { version = "0.3.41", features = [
|
|
"std",
|
|
"parsing",
|
|
"formatting",
|
|
"macros",
|
|
"serde",
|
|
] }
|
|
tokio = { version = "1.44.2", features = ["fs", "rt-multi-thread"] }
|
|
tonic = { version = "0.13.0", features = ["gzip"] }
|
|
tonic-build = "0.13.0"
|
|
tokio-rustls = { version = "0.26.2", default-features = false }
|
|
tokio-stream = "0.1.17"
|
|
tokio-util = { version = "0.7.14", features = ["io", "compat"] }
|
|
tower = { version = "0.5.2", features = ["timeout"] }
|
|
tower-http = { version = "0.6.2", features = ["cors"] }
|
|
tracing = "0.1.41"
|
|
tracing-core = "0.1.33"
|
|
tracing-error = "0.2.1"
|
|
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "time"] }
|
|
tracing-appender = "0.2.3"
|
|
tracing-opentelemetry = "0.30.0"
|
|
transform-stream = "0.3.1"
|
|
url = "2.5.4"
|
|
uuid = { version = "1.16.0", features = [
|
|
"v4",
|
|
"fast-rng",
|
|
"macro-diagnostics",
|
|
] }
|
|
workers = { path = "./common/workers" }
|
|
|
|
[profile.wasm-dev]
|
|
inherits = "dev"
|
|
opt-level = 1
|
|
|
|
[profile.server-dev]
|
|
inherits = "dev"
|
|
|
|
[profile.android-dev]
|
|
inherits = "dev"
|
|
|
|
[profile.release]
|
|
opt-level = 3 # Optimization Level (0-3)
|
|
lto = true # Optimize when linking
|
|
codegen-units = 1 # Reduce code generation units to improve optimization
|