[workspace] members = [ "appauth", # Application authentication and authorization "cli/rustfs-gui", # Graphical user interface client "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 "crates/config", # Configuration management "crates/event-notifier", # Event notification system "crates/obs", # Observability utilities "crates/utils", # Utility functions and helpers "crypto", # Cryptography and security features "ecstore", # Erasure coding storage implementation "e2e_test", # End-to-end test suite "iam", # Identity and Access Management "madmin", # Management dashboard and admin API interface "rustfs", # Core file system implementation "s3select/api", # S3 Select API interface "s3select/query", # S3 Select query engine "crates/zip", ] 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] api = { path = "./s3select/api", version = "0.0.1" } appauth = { path = "./appauth", version = "0.0.1" } common = { path = "./common/common", version = "0.0.1" } crypto = { path = "./crypto", version = "0.0.1" } ecstore = { path = "./ecstore", version = "0.0.1" } iam = { path = "./iam", version = "0.0.1" } lock = { path = "./common/lock", version = "0.0.1" } madmin = { path = "./madmin", version = "0.0.1" } policy = { path = "./policy", version = "0.0.1" } protos = { path = "./common/protos", version = "0.0.1" } query = { path = "./s3select/query", version = "0.0.1" } rustfs = { path = "./rustfs", version = "0.0.1" } rustfs-zip = { path = "./crates/zip", version = "0.0.1" } rustfs-config = { path = "./crates/config", version = "0.0.1" } rustfs-obs = { path = "crates/obs", version = "0.0.1" } rustfs-event-notifier = { path = "crates/event-notifier", version = "0.0.1" } rustfs-utils = { path = "crates/utils", version = "0.0.1" } workers = { path = "./common/workers", version = "0.0.1" } tokio-tar = "0.3.1" atoi = "2.0.0" async-recursion = "1.1.1" async-trait = "0.1.88" atomic_enum = "0.3.0" aws-sdk-s3 = "1.29.0" axum = "0.8.4" axum-extra = "0.10.1" axum-server = { version = "0.7.2", features = ["tls-rustls"] } backon = "1.5.1" blake2 = "0.10.6" bytes = "1.10.1" bytesize = "2.0.1" byteorder = "1.5.0" chrono = { version = "0.4.41", features = ["serde"] } clap = { version = "4.5.39", features = ["derive", "env"] } config = "0.15.11" const-str = { version = "0.6.2", features = ["std", "proc"] } datafusion = "46.0.1" derive_builder = "0.20.2" dioxus = { version = "0.6.3", features = ["router"] } dirs = "6.0.0" flatbuffers = "25.2.10" flexi_logger = { version = "0.30.2", features = ["trc"] } futures = "0.3.31" futures-core = "0.3.31" futures-util = "0.3.31" glob = "0.3.2" hex = "0.4.3" highway = { version = "1.3.0" } hyper = "1.6.0" hyper-util = { version = "0.1.14", features = [ "tokio", "server-auto", "server-graceful", ] } http = "1.3.1" http-body = "1.0.1" humantime = "2.2.0" include_dir = "0.7.4" jsonwebtoken = "9.3.1" keyring = { version = "3.6.2", features = [ "apple-native", "windows-native", "sync-secret-service", ] } lazy_static = "1.5.0" libsystemd = { version = "0.7.2" } local-ip-address = "0.6.5" matchit = "0.8.4" md-5 = "0.10.6" mime = "0.3.17" mime_guess = "2.0.5" netif = "0.1.6" nix = { version = "0.30.1", features = ["fs"] } nu-ansi-term = "0.50.1" num_cpus = { version = "1.17.0" } nvml-wrapper = "0.11.0" object_store = "0.11.2" once_cell = "1.21.3" opentelemetry = { version = "0.30.0" } opentelemetry-appender-tracing = { version = "0.30.1", features = [ "experimental_use_tracing_span_context", "experimental_metadata_attributes", "spec_unstable_logs_enabled" ] } opentelemetry_sdk = { version = "0.30.0" } opentelemetry-stdout = { version = "0.30.0" } opentelemetry-otlp = { version = "0.30.0", default-features = false, features = [ "grpc-tonic", "gzip-tonic", "trace", "metrics", "logs", "internal-logs" ] } opentelemetry-semantic-conventions = { version = "0.30.0", features = [ "semconv_experimental", ] } parking_lot = "0.12.4" percent-encoding = "2.3.1" pin-project-lite = "0.2.16" # pin-utils = "0.1.0" prost = "0.13.5" prost-build = "0.13.5" protobuf = "3.7" rand = "0.8.5" rdkafka = { version = "0.37.0", features = ["tokio"] } reed-solomon-erasure = { version = "6.0.0", features = ["simd-accel"] } regex = { version = "1.11.1" } reqwest = { version = "0.12.19", default-features = false, features = [ "rustls-tls", "charset", "http2", "system-proxy", "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" } rust-embed = { version = "8.7.2" } rustfs-rsc = "2025.506.1" rustls = { version = "0.23.27" } rustls-pki-types = "1.12.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 } serde = { version = "1.0.219", features = ["derive"] } serde_json = "1.0.140" serde_urlencoded = "0.7.1" serde_with = "3.12.0" sha2 = "0.10.9" smallvec = { version = "1.15.0", features = ["serde"] } snafu = "0.8.6" socket2 = "0.5.10" strum = { version = "0.27.1", features = ["derive"] } sysinfo = "0.35.2" tempfile = "3.20.0" test-case = "3.3.1" thiserror = "2.0.12" time = { version = "0.3.41", features = [ "std", "parsing", "formatting", "macros", "serde", ] } tokio = { version = "1.45.1", features = ["fs", "rt-multi-thread"] } tonic = { version = "0.13.1", features = ["gzip"] } tonic-build = { version = "0.13.1" } tokio-rustls = { version = "0.26.2", default-features = false } tokio-stream = { version = "0.1.17" } tokio-util = { version = "0.7.15", features = ["io", "compat"] } tower = { version = "0.5.2", features = ["timeout"] } tower-http = { version = "0.6.6", features = ["cors"] } tracing = "0.1.41" tracing-core = "0.1.34" tracing-error = "0.2.1" tracing-subscriber = { version = "0.3.19", features = ["env-filter", "time"] } tracing-appender = "0.2.3" tracing-opentelemetry = "0.31.0" transform-stream = "0.3.1" url = "2.5.4" urlencoding = "2.1.3" uuid = { version = "1.17.0", features = [ "v4", "fast-rng", "macro-diagnostics", ] } winapi = { version = "0.3.9" } [profile.wasm-dev] inherits = "dev" opt-level = 1 [profile.server-dev] inherits = "dev" [profile.android-dev] inherits = "dev" [profile.release] opt-level = 3 lto = "thin" codegen-units = 1 panic = "abort" # Optional, remove the panic expansion code strip = true # strip symbol information to reduce binary size [profile.production] inherits = "release" lto = "fat" codegen-units = 1 [profile.profiling] inherits = "release" debug = true