Minimal working example: connect to Fluss, create a table, write data, and read it back.
#include <iostream> #include "fluss.hpp" int main() { // Connect fluss::Configuration config; config.bootstrap_servers = "127.0.0.1:9123"; fluss::Connection conn; fluss::Connection::Create(config, conn); fluss::Admin admin; conn.GetAdmin(admin); // Create a log table fluss::TablePath table_path("fluss", "quickstart_cpp"); auto schema = fluss::Schema::NewBuilder() .AddColumn("id", fluss::DataType::Int()) .AddColumn("name", fluss::DataType::String()) .Build(); auto descriptor = fluss::TableDescriptor::NewBuilder() .SetSchema(schema) .Build(); admin.CreateTable(table_path, descriptor, true); // Write fluss::Table table; conn.GetTable(table_path, table); fluss::AppendWriter writer; table.NewAppend().CreateWriter(writer); fluss::GenericRow row; row.SetInt32(0, 1); row.SetString(1, "hello"); writer.Append(row); writer.Flush(); // Read fluss::LogScanner scanner; table.NewScan().CreateLogScanner(scanner); auto info = table.GetTableInfo(); for (int b = 0; b < info.num_buckets; ++b) { scanner.Subscribe(b, 0); } fluss::ScanRecords records; scanner.Poll(5000, records); for (const auto& rec : records) { std::cout << "id=" << rec.row.GetInt32(0) << ", name=" << rec.row.GetString(1) << std::endl; } return 0; }