内容摘录
<div align=center>
<img src="https://raw.githubusercontent.com/CurvineIO/curvine-doc/refs/heads/main/static/img/curvine_logo.svg", width="180" height="200">
</div>
!curvine-font-dark
!curvine-font-light
<p align="center">
English |
<a href="https://github.com/CurvineIO/curvine/blob/main/README_zh.md">简体中文</a> |
<a href="https://readme-i18n.com/CurvineIO/curvine?lang=de">Deutsch</a> |
<a href="https://readme-i18n.com/CurvineIO/curvine?lang=es">Español</a> |
<a href="https://readme-i18n.com/CurvineIO/curvine?lang=fr">français</a> |
<a href="https://readme-i18n.com/CurvineIO/curvine?lang=ja">日本語</a> |
<a href="https://readme-i18n.com/CurvineIO/curvine?lang=ko">한국어</a> |
<a href="https://readme-i18n.com/CurvineIO/curvine?lang=pt">Português</a> |
<a href="https://readme-i18n.com/CurvineIO/curvine?lang=ru">Русский</a>
</p>
License
Rust
**Curvine** is a high-performance, concurrent distributed cache system written in Rust, designed for low-latency and high-throughput workloads.
**Name Origin** The name "Curvine" is derived from the concatenation of the words "Curvature" and "Engine". It refers to an accelerator for spacecraft in the science fiction novel The Three-Body Problem, symbolizing extremely high performance.
📚 Documentation Resources
For more detailed information, please refer to:
Official Documentation
Quick Start
User Manuals
Detailed Usage Instructions
Benchmark
DeepWiki
Commit convention
Contribute guidelines
Roadmap 2026
!Evolution from Distributed Cache to AI Agent-Native Infrastructure
Use Case
!use_case
**Case1**: LLM Training acceleration Acceleration
**Case2**: LLM Model distribution Acceleration
**Case3**: Multimodal Data Lake Access Acceleration
**Case4**: OLAP Engine Query Acceleration in Compute-Storage Separation Scenarios
**Case5**: Multi-cloud data caching
🚀 Core Features
**Multi-Cloud Support**: Curvine is compatible with object storage services from multiple cloud providers as its underlying storage layer, enabling transparent data migration across different vendors' object storage platforms.
**Cloud-Native**: Curvine supports CSI-based cloud-native integration with Kubernetes, enabling deployment and management of Curvine clusters via Helm charts.
**Multi-tir Cache**: Supports multi-tir cache strategies for memory, SSD, and HDD.
**POSIX Semantic Support**: Curvine delivers comprehensive POSIX semantic compatibility, implementing a high-performance FUSE layer to facilitate the manipulation of distributed cached data as if it were local disk storage.
**Compatibility with S3 and HDFS Protocols**: The system supports both S3 and HDFS read/write interfaces, facilitating seamless integration with artificial intelligence and big data technology ecosystems.
**High Performance**: Curvine employs "zero-copy" techniques multiple times throughout its data read/write pipeline and leverages asynchronous operations. Additionally, its core engine is built with Rust, ensuring optimal performance is achieved.
**Raft Consensus**: Uses the Raft algorithm to ensure the master's data consistency and high availability.
**Monitoring and Metrics**: Curvine features a comprehensive built-in observability metrics system, facilitating detailed monitoring of the performance of each component.
**Web Interface**: Provides a web management interface for convenient system monitoring and management.
📦 System Requirements
Rust 1.86+
Linux or macOS (Limited support on Windows)
FUSE library (for file system functionality)
**Officially Supported Linux Distributions**
| OS Distribution | Kernel Requirement | Tested Version | Dependencies |
|---------------------|--------------------|----------------|--------------|
| **CentOS 7** | ≥3.10.0 | 7.6 | fuse2-2.9.2 |
| **CentOS 8** | ≥4.18.0 | 8.5 | fuse3-3.9.1 |
| **Rocky Linux 9** | ≥5.14.0 | 9.5 | fuse3-3.10.2 |
| **RHEL 9** | ≥5.14.0 | 9.5 | fuse3-3.10.2 |
| **Ubuntu 22** | ≥5.15.0 | 22.4 | fuse3-3.10.5 |
🛠 Build Instructions
This project requires the following dependencies. Please ensure they are installed before proceeding:
📋 Prerequisites
**GCC**: version 10 or later (Installation Guide)
**Rust**: version 1.86 or later (Installation Guide)
**Protobuf**: version 3.x
**Maven**: version 3.8 or later (Install Guide)
**LLVM**: version 12 or later (Installation Guide)
**FUSE**: libfuse2 or libfuse3 development packages
**JDK**: version 1.8 or later (OpenJDK or Oracle JDK)
**npm**: version 9 or later (Node.js Installation)
**Python**: version 3.7 or later (Installation Guide)
You can either:
Use the pre-configured curvine-docker/compile/Dockerfile_rocky9 to build a compilation image
Reference this Dockerfile to create a compilation image for other operating system versions
We also supply curvine/curvine-compile image on dockerhub
🚀 Build Steps (Linux - Ubuntu/Debian example)
Using make to build:
Using build.sh directly:
Building Docker images:
After successful compilation, target file will be generated in the build/dist directory. This file is the Curvine installation package that can be used for deployment or building images.
🖥️ Start a single - node cluster
Mount the file system
View the cluster overview:
Access the file system using compatible HDFS commands:
Access Web UI:
Curvine uses TOML - formatted configuration files. An example configuration is located at conf/curvine-cluster.toml. The main configuration items include:
Network settings (ports, addresses, etc.)
Storage policies (cache size, storage type)
Cluster configuration (number of nodes, replication factor)
Performance tuning parameters
🏗️ Architecture Design
Curvine adopts a master-slave architecture:
**Master Node**: Responsible for metadata management, worker node coordination, and load balancing.
**Worker Node**: Responsible for data storage and processing.
**Client**: Communicates with the Master and Worker nodes via RPC.
The system uses the Raft consensus algorithm to ensure metadata consistency and supports multiple storage strategies (memory, SSD, HDD) to opt…