Skip to content

docs: comprehensive README update#600

Merged
luoyuxia merged 3 commits into
apache:mainfrom
gnuhpc:docs/update-readme
Jun 6, 2026
Merged

docs: comprehensive README update#600
luoyuxia merged 3 commits into
apache:mainfrom
gnuhpc:docs/update-readme

Conversation

@gnuhpc

@gnuhpc gnuhpc commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Comprehensive update of the root README.md to provide a complete and accurate overview of the project.

Changes

New Content

  • Badges: Added crates.io, docs.rs, and license badges
  • Features matrix: Full capability table for the core client (connection, admin, log tables, KV tables, data types, storage, WASM)
  • Language bindings overview: Rust/Python/C++/Elixir comparison table with package, async runtime, and data format
  • Project structure tree: ASCII directory layout with module responsibilities
  • KV table example: New upsert + point lookup code example
  • All 5 examples: Table with descriptions for log table, KV table, partitioned, prefix lookup variants
  • Configuration reference: Key config options with defaults and descriptions
  • Development section: Build/test instructions for all language bindings

Fixes

  • Replaced outdated Args / ConnectionConfig API with current Config
  • Examples now use proper Result<()> error handling instead of unwrap()
  • Updated all code examples to use current builder patterns (Schema::builder(), TableDescriptor::builder())
  • Clarified in the opening paragraph that this is a client SDK, not the Fluss server

Structure

  • Clear section hierarchy with separators
  • Quick Start with both log table and KV table examples
  • Concise inline code blocks for easy copy-paste

warmbupt added 2 commits June 4, 2026 10:55
- Add crates.io, docs.rs, and license badges
- Add feature matrix and language bindings overview tables
- Add project structure tree diagram
- Add KV table (upsert + lookup) code example
- Update log table example to use current Config API
- Add configuration reference table
- Add all 5 examples with descriptions
- Add development setup instructions
- Fix outdated API usage (Args → Config, ConnectionConfig → Config)
- Add proper error handling (Result<?>) instead of unwrap()
- Add crates.io, docs.rs, and license badges
- Add feature matrix and language bindings overview tables
- Add project structure tree diagram
- Add KV table (upsert + lookup) code example
- Update log table example to use current Config API
- Add configuration reference table
- Add all 5 examples with descriptions
- Add development setup instructions
- Fix outdated API usage (Args → Config, ConnectionConfig → Config)
- Add proper error handling (Result<?>) instead of unwrap()
- Clarify this is a client SDK, not the server

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR overhauls the root README.md to present a more complete, up-to-date overview of the Apache Fluss Rust client SDK, including new feature summaries, language-binding comparisons, Quick Start examples, and development/build instructions.

Changes:

  • Added badges, clarified positioning as a client SDK, and expanded project overview (concepts, features, bindings, structure).
  • Replaced legacy API references with newer Config / builder-style examples and added additional runnable example references.
  • Added configuration and development/build/test sections for Rust and bindings.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment on lines +165 to +166
let scanner = table.new_scan()?.create_log_scanner()?;
scanner.subscribe(0, EARLIEST_OFFSET).await?;
Comment thread README.md Outdated
Comment on lines +171 to +172
println!("offset={}, c1={}, c2={}",
record.offset(), row.get_long(0)?, row.get_string(1)?);
Comment thread README.md Outdated
Comment on lines +192 to +195
let admin = conn.get_admin()?;

// Create a KV table
let table_path = TablePath::new("my_db", "users");
Comment thread README.md
Comment on lines +234 to +238
| `example-table` | Log table: append + scan with Arrow batch |
| `example-kv-table` | KV table: upsert + point lookup |
| `example-partitioned-kv-table` | KV table with partitions |
| `example-prefix-lookup` | Prefix lookup on bucket keys |
| `example-partitioned-prefix-lookup` | Prefix lookup on partitioned tables |
Comment thread README.md
Comment on lines +253 to +265
| Option | Default | Description |
| ------------------------------------- | ----------------- | --------------------------------------------- |
| `bootstrap_servers` | `127.0.0.1:9123` | Fluss coordinator address |
| `writer.batch.size` | 2 MB | Max batch size before flushing |
| `writer.batch.timeout_ms` | 100 ms | Max time before auto-flush |
| `writer.buffer.memory` | 64 MB | Total buffer memory for pending writes |
| `writer.retries` | `i32::MAX` | Max write retries |
| `scanner.log.fetch.max.bytes` | 16 MB | Max bytes per fetch request |
| `scanner.log.fetch.wait.max.time_ms` | 500 ms | Max wait time for fetch |
| `scanner.remote_log.read.concurrency` | 4 | Concurrency for remote log reads |
| `connect.timeout_ms` | 120 s | Connection timeout |
| `security.sasl.username` / `password` | — | SASL PLAIN authentication |

@luoyuxia luoyuxia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gnuhpc Thanks for the update to reduce the misleading. LGTM overall. Please take care of the comments by copiot.

- Fix tokio dep to include full features (#[tokio::main] requirement)
- Use default 'fluss' database instead of non-existent 'my_db'
- Remove incorrect '?' on new_scan() (returns TableScan, not Result)
- Fix column labels in scan output (c1/c2 → ts/message)
- Fix example names to match Cargo.toml targets
- Fix config option names to match actual Rust snake_case fields

@luoyuxia luoyuxia left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. LGTM

@luoyuxia luoyuxia merged commit 6242b99 into apache:main Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants