mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-17 01:30:33 +00:00
This commit streamlines the server configuration by unifying the S3 API and the WebUI (Console) to serve on a single port. Previously, the console was managed by separate configuration options (`RUSTFS_CONSOLE_ENABLE` and `RUSTFS_CONSOLE_ADDRESS`), requiring a distinct port. This added complexity to deployment and configuration. With this change: - The `RUSTFS_CONSOLE_ADDRESS` and `RUSTFS_CONSOLE_FS_ENDPOINT` environment variables are removed. - The WebUI is now always available and served directly from the main application port defined by `RUSTFS_ADDRESS`. - This simplifies setup, reduces the number of exposed ports, and makes the application easier to manage and deploy, especially in containerized environments. Users should update their startup scripts and remove the deprecated `RUSTFS_CONSOLE_*` variables.
291 lines
9.3 KiB
TOML
291 lines
9.3 KiB
TOML
# Copyright 2024 RustFS Team
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
[workspace]
|
|
members = [
|
|
"rustfs", # Core file system implementation
|
|
"cli/rustfs-gui", # Graphical user interface client
|
|
"crates/appauth", # Application authentication and authorization
|
|
"crates/common", # Shared utilities and data structures
|
|
"crates/config", # Configuration management
|
|
"crates/crypto", # Cryptography and security features
|
|
"crates/ecstore", # Erasure coding storage implementation
|
|
"crates/e2e_test", # End-to-end test suite
|
|
"crates/filemeta", # File metadata management
|
|
"crates/iam", # Identity and Access Management
|
|
"crates/lock", # Distributed locking implementation
|
|
"crates/madmin", # Management dashboard and admin API interface
|
|
"crates/notify", # Notification system for events
|
|
"crates/obs", # Observability utilities
|
|
"crates/protos", # Protocol buffer definitions
|
|
"crates/rio", # Rust I/O utilities and abstractions
|
|
"crates/s3select-api", # S3 Select API interface
|
|
"crates/s3select-query", # S3 Select query engine
|
|
"crates/signer", # client signer
|
|
"crates/utils", # Utility functions and helpers
|
|
"crates/workers", # Worker thread pools and task scheduling
|
|
"crates/zip", # ZIP file handling and compression
|
|
"crates/ahm",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
edition = "2024"
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/rustfs/rustfs"
|
|
rust-version = "1.85"
|
|
version = "0.0.5"
|
|
homepage = "https://rustfs.com"
|
|
description = "RustFS is a high-performance distributed object storage software built using Rust, one of the most popular languages worldwide. "
|
|
keywords = ["RustFS", "Minio", "object-storage", "filesystem", "s3"]
|
|
categories = ["web-programming", "development-tools", "filesystem", "network-programming"]
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "deny"
|
|
|
|
[workspace.lints.clippy]
|
|
all = "warn"
|
|
|
|
[patch.crates-io]
|
|
rustfs-utils = { path = "crates/utils" }
|
|
rustfs-filemeta = { path = "crates/filemeta" }
|
|
rustfs-rio = { path = "crates/rio" }
|
|
|
|
[workspace.dependencies]
|
|
rustfs-ahm = { path = "crates/ahm", version = "0.0.5" }
|
|
rustfs-s3select-api = { path = "crates/s3select-api", version = "0.0.5" }
|
|
rustfs-appauth = { path = "crates/appauth", version = "0.0.5" }
|
|
rustfs-common = { path = "crates/common", version = "0.0.5" }
|
|
rustfs-crypto = { path = "crates/crypto", version = "0.0.5" }
|
|
rustfs-ecstore = { path = "crates/ecstore", version = "0.0.5" }
|
|
rustfs-iam = { path = "crates/iam", version = "0.0.5" }
|
|
rustfs-lock = { path = "crates/lock", version = "0.0.5" }
|
|
rustfs-madmin = { path = "crates/madmin", version = "0.0.5" }
|
|
rustfs-policy = { path = "crates/policy", version = "0.0.5" }
|
|
rustfs-protos = { path = "crates/protos", version = "0.0.5" }
|
|
rustfs-s3select-query = { path = "crates/s3select-query", version = "0.0.5" }
|
|
rustfs = { path = "./rustfs", version = "0.0.5" }
|
|
rustfs-zip = { path = "./crates/zip", version = "0.0.5" }
|
|
rustfs-config = { path = "./crates/config", version = "0.0.5" }
|
|
rustfs-obs = { path = "crates/obs", version = "0.0.5" }
|
|
rustfs-notify = { path = "crates/notify", version = "0.0.5" }
|
|
rustfs-utils = { path = "crates/utils", version = "0.0.5" }
|
|
rustfs-rio = { path = "crates/rio", version = "0.0.5" }
|
|
rustfs-filemeta = { path = "crates/filemeta", version = "0.0.5" }
|
|
rustfs-signer = { path = "crates/signer", version = "0.0.5" }
|
|
rustfs-workers = { path = "crates/workers", version = "0.0.5" }
|
|
aes-gcm = { version = "0.10.3", features = ["std"] }
|
|
arc-swap = "1.7.1"
|
|
argon2 = { version = "0.5.3", features = ["std"] }
|
|
atoi = "2.0.0"
|
|
async-channel = "2.5.0"
|
|
async-recursion = "1.1.1"
|
|
async-trait = "0.1.88"
|
|
async-compression = { version = "0.4.0" }
|
|
atomic_enum = "0.3.0"
|
|
aws-sdk-s3 = "1.96.0"
|
|
axum = "0.8.4"
|
|
axum-extra = "0.10.1"
|
|
axum-server = { version = "0.7.2", features = ["tls-rustls"] }
|
|
base64-simd = "0.8.0"
|
|
base64 = "0.22.1"
|
|
brotli = "8.0.1"
|
|
bytes = { version = "1.10.1", features = ["serde"] }
|
|
bytesize = "2.0.1"
|
|
byteorder = "1.5.0"
|
|
cfg-if = "1.0.1"
|
|
chacha20poly1305 = { version = "0.10.1" }
|
|
chrono = { version = "0.4.41", features = ["serde"] }
|
|
clap = { version = "4.5.41", features = ["derive", "env"] }
|
|
const-str = { version = "0.6.2", features = ["std", "proc"] }
|
|
crc32fast = "1.4.2"
|
|
criterion = { version = "0.5", features = ["html_reports"] }
|
|
dashmap = "6.1.0"
|
|
datafusion = "46.0.1"
|
|
derive_builder = "0.20.2"
|
|
dioxus = { version = "0.6.3", features = ["router"] }
|
|
dirs = "6.0.0"
|
|
enumset = "1.1.7"
|
|
flatbuffers = "25.2.10"
|
|
flate2 = "1.1.2"
|
|
flexi_logger = { version = "0.31.2", features = ["trc", "dont_minimize_extra_stacks"] }
|
|
form_urlencoded = "1.2.1"
|
|
futures = "0.3.31"
|
|
futures-core = "0.3.31"
|
|
futures-util = "0.3.31"
|
|
glob = "0.3.2"
|
|
hex = "0.4.3"
|
|
hex-simd = "0.8.0"
|
|
highway = { version = "1.3.0" }
|
|
hmac = "0.12.1"
|
|
hyper = "1.6.0"
|
|
hyper-util = { version = "0.1.15", features = [
|
|
"tokio",
|
|
"server-auto",
|
|
"server-graceful",
|
|
] }
|
|
hyper-rustls = "0.27.7"
|
|
http = "1.3.1"
|
|
http-body = "1.0.1"
|
|
humantime = "2.2.0"
|
|
ipnetwork = { version = "0.21.1", features = ["serde"] }
|
|
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"
|
|
lz4 = "1.28.1"
|
|
matchit = "0.8.4"
|
|
md-5 = "0.10.6"
|
|
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"
|
|
path-absolutize = "3.1.1"
|
|
path-clean = "1.0.1"
|
|
blake3 = { version = "1.8.2" }
|
|
pbkdf2 = "0.12.2"
|
|
percent-encoding = "2.3.1"
|
|
pin-project-lite = "0.2.16"
|
|
prost = "0.13.5"
|
|
quick-xml = "0.38.0"
|
|
rand = "0.9.1"
|
|
rdkafka = { version = "0.38.0", features = ["tokio"] }
|
|
reed-solomon-simd = { version = "3.0.1" }
|
|
regex = { version = "1.11.1" }
|
|
reqwest = { version = "0.12.22", 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"
|
|
rsa = "0.9.8"
|
|
rumqttc = { version = "0.24" }
|
|
rust-embed = { version = "8.7.2" }
|
|
rust-i18n = { version = "3.1.5" }
|
|
rustfs-rsc = "2025.506.1"
|
|
rustls = { version = "0.23.29" }
|
|
rustls-pki-types = "1.12.0"
|
|
rustls-pemfile = "2.2.0"
|
|
s3s = { version = "0.12.0-minio-preview.1" }
|
|
shadow-rs = { version = "1.2.0", default-features = false }
|
|
serde = { version = "1.0.219", features = ["derive"] }
|
|
serde_json = { version = "1.0.140", features = ["raw_value"] }
|
|
serde-xml-rs = "0.8.1"
|
|
serde_urlencoded = "0.7.1"
|
|
sha1 = "0.10.6"
|
|
sha2 = "0.10.9"
|
|
siphasher = "1.0.1"
|
|
smallvec = { version = "1.15.1", features = ["serde"] }
|
|
snafu = "0.8.6"
|
|
snap = "1.1.1"
|
|
socket2 = "0.6.0"
|
|
strum = { version = "0.27.1", features = ["derive"] }
|
|
sysinfo = "0.36.0"
|
|
tempfile = "3.20.0"
|
|
temp-env = "0.3.6"
|
|
test-case = "3.3.1"
|
|
thiserror = "2.0.12"
|
|
time = { version = "0.3.41", features = [
|
|
"std",
|
|
"parsing",
|
|
"formatting",
|
|
"macros",
|
|
"serde",
|
|
] }
|
|
tokio = { version = "1.46.1", features = ["fs", "rt-multi-thread"] }
|
|
tokio-rustls = { version = "0.26.2", default-features = false }
|
|
tokio-stream = { version = "0.1.17" }
|
|
tokio-tar = "0.3.1"
|
|
tokio-test = "0.4.4"
|
|
tokio-util = { version = "0.7.15", features = ["io", "compat"] }
|
|
tonic = { version = "0.13.1", features = ["gzip"] }
|
|
tonic-build = { version = "0.13.1" }
|
|
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",
|
|
] }
|
|
wildmatch = { version = "2.4.0", features = ["serde"] }
|
|
winapi = { version = "0.3.9" }
|
|
xxhash-rust = { version = "0.8.15", features = ["xxh64", "xxh3"] }
|
|
zip = "2.4.2"
|
|
zstd = "0.13.3"
|
|
anyhow = "1.0.98"
|
|
|
|
[profile.wasm-dev]
|
|
inherits = "dev"
|
|
opt-level = 1
|
|
|
|
[profile.server-dev]
|
|
inherits = "dev"
|
|
|
|
[profile.android-dev]
|
|
inherits = "dev"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
|
|
[profile.production]
|
|
inherits = "release"
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
debug = true
|