Skip to content

Repository files navigation

RustFS Launcher

A Tauri + Leptos application for launching RustFS.

Prerequisites

Building

Before building the application, you need to download the required RustFS binary for your platform:

On macOS/Linux:

# Download binary for current platform
./build.sh

# Build for development
cargo tauri dev

# Build for production
cargo tauri build

On Windows:

# Download binary for current platform
build.bat

# Build for development
cargo tauri dev

# Build for production
cargo tauri build

The build script will automatically detect your platform and download the appropriate binary:

  • macOS Apple Silicon: rustfs-macos-aarch64
  • macOS Intel: rustfs-macos-x86_64
  • Windows x86_64: rustfs-windows-x86_64.exe

This approach reduces download time and storage space by only downloading the binary needed for your current platform.

Development Workflow

Pre-commit Checks

Before committing your code, run all CI checks locally:

make pre-commit

This will run:

  • Code formatting check (cargo fmt)
  • Clippy linter (cargo clippy)
  • Frontend build (trunk build)
  • Unit tests (cargo test)

Individual Checks

make check-fmt      # Check code formatting
make check-clippy   # Run Clippy linter
make check-frontend # Build frontend
make check-test     # Run tests
make fix-fmt        # Auto-fix formatting
make check-upstream # Check for new upstream rustfs/rustfs versions

Automated Upstream Sync

The project automatically syncs with upstream rustfs/rustfs releases:

  • Hourly Check: A scheduled GitHub Actions workflow runs hourly to check https://version.rustfs.com/latest.json for new versions
  • Automatic Build: When a new version is detected, the workflow automatically creates a git tag and triggers the build process
  • Manual Check: Run make check-upstream locally to check for new versions
  • Manual Trigger: Can be manually triggered via GitHub Actions if needed

This ensures the launcher always stays up-to-date with the latest RustFS releases without manual intervention.

CI/CD

The project uses GitHub Actions for continuous integration and automated releases. See .github/ACTIONS.md for details.

Installed launchers can check, download, verify, and install signed application updates from the application UI. The update replaces the complete application bundle, including the bundled RustFS binary. Release signing and operational details are documented in docs/SELF_UPDATE.md.

For local testing of GitHub Actions workflows, see .github/TESTING.md.

Recommended IDE Setup

VS Code + Tauri + rust-analyzer.

About

rustfs cross-platform launcher

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages