sidebar_position: 1

Installation

The Fluss Rust client is published to crates.io as fluss-rs. The crate's library name is fluss, so you import it with use fluss::....

[dependencies]
fluss-rs = "0.1"
tokio = { version = "1", features = ["full"] }

Feature Flags

[dependencies]
# Default: memory and filesystem storage
fluss-rs = "0.1"

# With S3 storage support
fluss-rs = { version = "0.1", features = ["storage-s3"] }

# With OSS storage support
fluss-rs = { version = "0.1", features = ["storage-oss"] }

# All storage backends
fluss-rs = { version = "0.1", features = ["storage-all"] }

Available features:

  • storage-memory (default: In-memory storage)
  • storage-fs (default: Local filesystem storage)
  • storage-s3 (Amazon S3 storage)
  • storage-oss (Alibaba OSS storage)
  • storage-all (All storage backends)

Git or Path Dependency

For development against unreleased changes:

[dependencies]
# From Git
fluss = { git = "https://github.com/apache/fluss-rust.git", package = "fluss-rs" }

# From local path
fluss = { path = "/path/to/fluss-rust/crates/fluss", package = "fluss-rs" }

Note: When using git or path dependencies, the package = "fluss-rs" field is required so that Cargo resolves the correct package while still allowing use fluss::... imports.

Building from Source

Prerequisites: Rust 1.85+, Protobuf compiler (protoc)

git clone https://github.com/apache/fluss-rust.git
cd fluss-rust

Install protoc:

# macOS
brew install protobuf

# Ubuntu/Debian
sudo apt-get install protobuf-compiler

Build:

cargo build --workspace --all-targets