houseme b1358d4711 # Expand ARM64 Linux Support in Build Pipeline
Added support for both ARM64 Linux variants to the CI/CD build pipeline:

1. Enabled the previously commented `aarch64-unknown-linux-gnu` target build
2. Re-enabled the `aarch64-unknown-linux-musl` target build
3. Updated the build matrix to ensure proper runner selection:
   - Ubuntu runners build all Linux targets
   - macOS runners build only Apple Silicon targets
4. Maintained compatibility with the existing build scripts and packaging process

This expansion gives users more options for deploying on ARM64 Linux platforms, supporting both glibc and musl libc environments for maximum compatibility and performance.
2025-05-10 00:24:14 +08:00
2025-04-08 22:32:24 +08:00
2025-05-09 14:38:14 +08:00
2025-04-11 20:53:51 +08:00
2025-04-29 09:10:03 +08:00
2025-04-09 02:41:06 +00:00
2025-05-09 22:57:09 +08:00
2025-04-11 20:53:51 +08:00
2025-04-24 08:21:09 +00:00
2025-04-11 20:53:51 +08:00
2025-05-08 17:42:20 +08:00
2025-05-06 11:10:30 +08:00
2025-04-22 09:14:09 +08:00
2025-05-08 17:42:20 +08:00
2025-03-14 23:26:54 +08:00
2025-03-11 16:12:34 +08:00
2024-07-01 19:33:20 +08:00
2025-03-20 01:16:55 +08:00

RustFS

English Documentation |中文文档

Prerequisites

Package Version Download Link
Rust 1.8.5+ rust-lang.org/tools/install
protoc 30.2+ protoc-30.2-linux-x86_64.zip
flatc 24.0+ Linux.flatc.binary.g++-13.zip

Building RustFS

Generate Protobuf Code

cargo run --bin gproto

Using Docker for Prerequisites

- uses: arduino/setup-protoc@v3
  with:
    version: "30.2"

- uses: Nugine/setup-flatc@v1
  with:
    version: "25.2.10"

Adding Console Web UI

  1. Download the latest console UI:
    wget https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip
    
  2. Create the static directory:
    mkdir -p ./rustfs/static
    
  3. Extract and compile RustFS:
    unzip rustfs-console-latest.zip -d ./rustfs/static
    cargo build
    

Running RustFS

Configuration

Set the required environment variables:

# Basic config
export RUSTFS_VOLUMES="./target/volume/test"
export RUSTFS_ADDRESS="0.0.0.0:9000"
export RUSTFS_CONSOLE_ENABLE=true
export RUSTFS_CONSOLE_ADDRESS="0.0.0.0:9001"

# Observability config (option 1: config file)
export RUSTFS_OBS_CONFIG="./deploy/config/obs.toml"

# Observability config (option 2: environment variables)
export RUSTFS__OBSERVABILITY__ENDPOINT=http://localhost:4317
export RUSTFS__OBSERVABILITY__USE_STDOUT=true
export RUSTFS__OBSERVABILITY__SAMPLE_RATIO=2.0
export RUSTFS__OBSERVABILITY__METER_INTERVAL=30
export RUSTFS__OBSERVABILITY__SERVICE_NAME=rustfs
export RUSTFS__OBSERVABILITY__SERVICE_VERSION=0.1.0
export RUSTFS__OBSERVABILITY__ENVIRONMENT=develop
export RUSTFS__OBSERVABILITY__LOGGER_LEVEL=info
export RUSTFS__OBSERVABILITY__LOCAL_LOGGING_ENABLED=true

# Logging sinks
export RUSTFS__SINKS__FILE__ENABLED=true
export RUSTFS__SINKS__FILE__PATH="./deploy/logs/rustfs.log"
export RUSTFS__SINKS__WEBHOOK__ENABLED=false
export RUSTFS__SINKS__WEBHOOK__ENDPOINT=""
export RUSTFS__SINKS__WEBHOOK__AUTH_TOKEN=""
export RUSTFS__SINKS__KAFKA__ENABLED=false
export RUSTFS__SINKS__KAFKA__BOOTSTRAP_SERVERS=""
export RUSTFS__SINKS__KAFKA__TOPIC=""
export RUSTFS__LOGGER__QUEUE_CAPACITY=10

Start the service

./rustfs /data/rustfs

Observability Stack

Deployment

  1. Navigate to the observability directory:

    cd .docker/observability
    
  2. Start the observability stack:

    docker compose -f docker-compose.yml  up -d
    

Access Monitoring Dashboards

  • Grafana: http://localhost:3000 (credentials: admin/admin)
  • Jaeger: http://localhost:16686
  • Prometheus: http://localhost:9090

Configuring Observability

  1. Copy the example configuration:

    cd deploy/config
    cp obs.toml.example obs.toml
    
  2. Edit obs.toml with the following parameters:

Parameter Description Example
endpoint OpenTelemetry Collector address http://localhost:4317
service_name Service name rustfs
service_version Service version 1.0.0
environment Runtime environment production
meter_interval Metrics export interval (seconds) 30
sample_ratio Sampling ratio 1.0
use_stdout Output to console true/false
logger_level Log level info
local_logging_enable stdout true/false
S
Description
2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.
Readme Apache-2.0 110 MiB
Languages
Rust 94.9%
Shell 3.9%
Python 1%