diff --git a/README.md b/README.md index 7f38cb15..aeee49aa 100644 --- a/README.md +++ b/README.md @@ -1,121 +1,122 @@ -# RustFS +[![RustFS](https://github.com/user-attachments/assets/547d72f7-d1f4-4763-b9a8-6040bad9251a)](https://rustfs.com) -## English Documentation |[中文文档](README_ZH.md) -### Prerequisites +

RustFS is a high-performance distributed object storage software built using Rust

-| Package | Version | Download Link | -|---------|---------|----------------------------------------------------------------------------------------------------------------------------------| -| Rust | 1.8.5+ | [rust-lang.org/tools/install](https://www.rust-lang.org/tools/install) | -| protoc | 31.1+ | [protoc-31.1-linux-x86_64.zip](https://github.com/protocolbuffers/protobuf/releases/download/v31.1/protoc-31.1-linux-x86_64.zip) | -| flatc | 24.0+ | [Linux.flatc.binary.g++-13.zip](https://github.com/google/flatbuffers/releases/download/v25.2.10/Linux.flatc.binary.g++-13.zip) | +

+ + GitHub commit activity + Github Last Commit + Github Contributors + GitHub closed issues + Discord +

-### Building RustFS +

+ Getting Started + · Docs + · Bug reports + · Discussions +

-#### Generate Protobuf Code +

+English | 简体中文 +

-```bash -cargo run --bin gproto -``` +RustFS is a high-performance distributed object storage software built using Rust, one of the most popular languages worldwide. Along with MinIO, it shares a range of advantages such as simplicity, S3 compatibility, open-source nature, support for data lakes, AI, and big data. Furthermore, it has a better and more user-friendly open-source license in comparison to other storage systems, being constructed under the Apache license. As Rust serves as its foundation, RustFS provides faster speed and safer distributed features for high-performance object storage. -#### Using Docker for Prerequisites +## Features -```yaml -- uses: arduino/setup-protoc@v3 - with: - version: "30.2" +- **High Performance**: Built with Rust, ensuring speed and efficiency. +- **Distributed Architecture**: Scalable and fault-tolerant design for large-scale deployments. +- **S3 Compatibility**: Seamless integration with existing S3-compatible applications. +- **Data Lake Support**: Optimized for big data and AI workloads. +- **Open Source**: Licensed under Apache 2.0, encouraging community contributions and transparency. +- **User-Friendly**: Designed with simplicity in mind, making it easy to deploy and manage. -- uses: Nugine/setup-flatc@v1 - with: - version: "25.2.10" -``` +## RustFS vs MinIO -#### Adding Console Web UI +Stress test server parameters + +| Type | parameter | Remark | +| - | - | - | +|CPU | 2 Core | Intel Xeon(Sapphire Rapids) Platinum 8475B , 2.7/3.2 GHz| | +|Memory| 4GB |   | +|Network | 15Gbp |   | +|Driver | 40GB x 4 | IOPS 3800 / Driver | + + +https://github.com/user-attachments/assets/8cdc78f3-5ccb-413b-aa08-ff005022cf52 + + +### RustFS vs Other object storage + +| RustFS | Other object storage| +| - | - | +| Powerful Console | Simple and useless Console | +| Developed based on Rust language, memory is safer | Developed in Go or C, with potential issues like memory GC/leaks | +| Does not report logs to third-party countries | Reporting logs to other third countries may violate national security laws | +| Licensed under Apache, more business-friendly | AGPL V3 License and other License, polluted open source and License traps, infringement of intellectual property rights | +| Comprehensive S3 support, works with domestic and international cloud providers | Full support for S3, but no local cloud vendor support | +| Rust-based development, strong support for secure and innovative devices | Poor support for edge gateways and secure innovative devices| +| Stable commercial prices, free community support | High pricing, with costs up to $250,000 for 1PiB | +| No risk | Intellectual property risks and risks of prohibited uses | + +## Quickstart + +To get started with RustFS, follow these steps: + +1. **Install RustFS**: Download the latest release from our [GitHub Releases](https://github.com/rustfs/rustfs/releases). +2. **Run RustFS**: Use the provided binary to start the server. -1. Download the latest console UI: ```bash - wget https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip - ``` -2. Create the static directory: - ```bash - mkdir -p ./rustfs/static - ``` -3. Extract and compile RustFS: - ```bash - unzip rustfs-console-latest.zip -d ./rustfs/static - cargo build + ./rustfs /data ``` -### Running RustFS +3. **Access the Console**: Open your web browser and navigate to `http://localhost:9001` to access the RustFS console. +4. **Create a Bucket**: Use the console to create a new bucket for your objects. +5. **Upload Objects**: You can upload files directly through the console or use S3-compatible APIs to interact with your RustFS instance. -#### Configuration +## Documentation -Set the required environment variables: +For detailed documentation, including configuration options, API references, and advanced usage, please visit our [Documentation](https://docs.rustfs.com). -```bash -# 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" +## Getting Help -# Observability config -export RUSTFS_OBS_ENDPOINT="http://localhost:4317" +If you have any questions or need assistance, you can: -# Event message configuration -#export RUSTFS_EVENT_CONFIG="./deploy/config/event.toml" +- Check the [FAQ](https://docs.rustfs.com/faq) for common issues and solutions. +- Join our [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) to ask questions and share your experiences. +- Open an issue on our [GitHub Issues](https://github.com/rustfs/rustfs/issues) page for bug reports or feature requests. -``` +## Links -#### Start the service +- [Documentation](https://docs.rustfs.com) - The manual you should read +- [Changelog](https://docs.rustfs.com/changelog) - What we broke and fixed +- [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) - Where the community lives -```bash -./rustfs /data/rustfs -``` +## Contributing -## Observability Stack Otel and OpenObserve +Contributions welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full spiel. -### OpenTelemetry Collector 和 Jaeger、Grafana、Prometheus、Loki +## Contact -1. Navigate to the observability directory: - ```bash - cd .docker/observability - ``` +- **Bugs**: [GitHub Issues](https://github.com/rustfs/rustfs/issues) +- **Business**: +- **Jobs**: +- **General Discussion**: [GitHub Discussions](https://github.com/rustfs/rustfs/discussions) -2. Start the observability stack: - ```bash - docker compose -f docker-compose.yml up -d - ``` +## Contributors -#### Access Monitoring Dashboards +RustFS is a community-driven project, and we appreciate all contributions. Check out the [Contributors](https://github.com/rustfs/rustfs/graphs/contributors) page to see the amazing people who have helped make RustFS better. -- Grafana: `http://localhost:3000` (credentials: `admin`/`admin`) -- Jaeger: `http://localhost:16686` -- Prometheus: `http://localhost:9090` + + + -#### Configure observability -``` -OpenTelemetry Collector address(endpoint): http://localhost:4317 -``` +## License ---- +[Apache 2.0](https://opensource.org/licenses/Apache-2.0) -### OpenObserve and OpenTelemetry Collector - -1. Navigate to the OpenObserve and OpenTelemetry directory: - ```bash - cd .docker/openobserve-otel - ``` -2. Start the OpenObserve and OpenTelemetry Collector services: - ```bash - docker compose -f docker-compose.yml up -d - ``` -3. Access the OpenObserve UI: - OpenObserve UI: `http://localhost:5080` - - Default credentials: - - Username: `root@rustfs.com` - - Password: `rustfs123` - - Exposed ports: - - 5080: HTTP API and UI - - 5081: OTLP gRPC +**RustFS** is a trademark of RustFS, Inc. All other trademarks are the property of their respective owners.