{"id":31159551,"url":"https://github.com/apache/fluss-rust","last_synced_at":"2026-04-07T03:02:36.937Z","repository":{"id":311770843,"uuid":"1042522351","full_name":"apache/fluss-rust","owner":"apache","description":"Rust Client for Apache Fluss (Incubating)","archived":false,"fork":false,"pushed_at":"2026-04-03T05:58:41.000Z","size":2270,"stargazers_count":43,"open_issues_count":86,"forks_count":38,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-03T11:47:52.060Z","etag":null,"topics":["fluss","lakehouse","python","real-time-analytics","rust","streaming"],"latest_commit_sha":null,"homepage":"https://clients.fluss.apache.org/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":"copyright.txt","agents":null,"dco":null,"cla":null}},"created_at":"2025-08-22T06:38:45.000Z","updated_at":"2026-04-03T04:10:32.000Z","dependencies_parsed_at":"2025-12-29T16:05:17.397Z","dependency_job_id":"b87b9c24-e900-4c27-b726-b4c11316b878","html_url":"https://github.com/apache/fluss-rust","commit_stats":null,"previous_names":["apache/fluss-rust"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/apache/fluss-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluss-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluss-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluss-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluss-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/fluss-rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Ffluss-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31498070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"online","status_checked_at":"2026-04-07T02:00:07.164Z","response_time":105,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fluss","lakehouse","python","real-time-analytics","rust","streaming"],"created_at":"2025-09-19T01:59:15.081Z","updated_at":"2026-04-07T03:02:36.931Z","avatar_url":"https://github.com/apache.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apache Fluss™ Rust (Incubating)\n\n![Experimental](https://img.shields.io/badge/status-experimental-orange)\n\nRust implementation of [Apache Fluss™](https://fluss.apache.org/).\n\n\n## Why Fluss?\n[Fluss](https://fluss.apache.org/) is a streaming storage built for real-time analytics which can serve as the real-time data layer for Lakehouse architectures.\nIt bridges the gap between streaming data and the data Lakehouse by enabling low-latency, high-throughput data ingestion and processing while seamlessly integrating with popular compute engines.\n\n## Why Fluss Rust Client\nIt's an official Rust client for interacting with Fluss. This client provides foundational capabilities for table management and log streaming operations, enabling developers to explore Fluss within Rust ecosystems.\n\n## Quick-Start\n\n### Step1 Start Fluss cluster\n#### Requirements\nFluss runs on all UNIX-like environments, e.g. Linux, Mac OS X. Before you start to setup the system, make sure you have the following software installed on your test machine:\n\nJava 17 or higher (Java 8 and Java 11 are not recommended)\nIf your cluster does not fulfill these software requirements you will need to install/upgrade it.\n\nFluss requires the JAVA_HOME environment variable to be set on all nodes and point to the directory of your Java installation.\n\n#### Fluss Setup\nGo to the [downloads](https://fluss.apache.org/downloads/) page and download the latest Fluss release (currently 0.8.0). Make sure to pick the Fluss package matching your Java version. After downloading the latest release, extract it:\n```shell\ntar -xzf fluss-0.8.0-incubating-bin.tgz\ncd fluss-0.8.0-incubating/\n```\nYou can start Fluss local cluster by running the following command:\n```shell\n./bin/local-cluster.sh start\n```\nAfter that, the Fluss local cluster is started.\n\n### Run Provided Example\nOnly supports Linux or macOs. You will need to [install Rust](https://www.rust-lang.org/tools/install) firstly. \n\nAfter that, go the project directory, build it and run the example:\n```shell\ncargo build --example example-table --release\ncd target/release/examples\n./example-table\n```\nThe example code is as follows:\n```rust\n#[tokio::main]\npub async fn main() -\u003e Result\u003c()\u003e {\n    // 1: create the table;\n    let mut args = Args::default();\n    args.bootstrap_servers = \"127.0.0.1:9123\".to_string();\n    let conn_config = ConnectionConfig::from_args(args);\n    let conn = FlussConnection::new(conn_config).await;\n\n    let admin = conn.get_admin();\n\n    let table_descriptor = TableDescriptor::builder()\n        .schema(\n            Schema::builder()\n                .column(\"c1\", DataTypes::int())\n                .column(\"c2\", DataTypes::string())\n                .build(),\n        )\n        .build();\n\n    let table_path = TablePath::new(\"fluss\".to_owned(), \"rust_test\".to_owned());\n\n    admin\n        .create_table(\u0026table_path, \u0026table_descriptor, true)\n        .await\n        .unwrap();\n\n    // 2: get the table\n    let table_info = admin.get_table_info(\u0026table_path).await.unwrap();\n    print!(\"Get created table:\\n {}\\n\", table_info);\n\n    // let's sleep 2 seconds to wait leader ready\n    thread::sleep(Duration::from_secs(2));\n\n    // 3: append log to the table\n    let table = conn.get_table(\u0026table_path).await;\n    let append_writer = table.new_append().create_writer();\n    let batch = record_batch!((\"c1\", Int32, [1, 2, 3, 4, 5, 6]), (\"c2\", Utf8, [\"a1\", \"a2\", \"a3\", \"a4\", \"a5\", \"a6\"])).unwrap();\n    append_writer.append(batch)?;\n    append_writer.flush().await?;\n    println!(\"Start to scan log records......\");\n    // 4: scan the records\n    let log_scanner = table.new_scan().create_log_scanner();\n    log_scanner.subscribe(0, 0).await;\n\n    loop {\n        let scan_records = log_scanner.poll(Duration::from_secs(10)).await?;\n        println!(\"Start to poll records......\");\n        for record in scan_records {\n            let row = record.row();\n            println!(\n                \"{{{}, {}}}@{}\",\n                row.get_int(0),\n                row.get_string(1),\n                record.offset()\n            );\n        }\n    }\n    Ok(())\n}\n```\n\nYou can change it according to your needs, have fun!\n\n#### Clear environment\nThen, stop your Fluss cluster. Go to your Fluss home, stop it via the following commands:\n```shell\n./bin/local-cluster.sh stop\n```\n\n## Documentation\n\n- [Development Guide](DEVELOPMENT.md) – Build, test, and contribute to fluss-rust.\n- [Release Guide](website/docs/release/create-release.md) – How to build, release, and sign official Fluss client packages (Rust, Python, C++).\n\n## License\n\nLicensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Ffluss-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Ffluss-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Ffluss-rust/lists"}