This is an automated email from the ASF dual-hosted git repository.

fresh-borzoni pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git


    from 8cd8d1628 [lake] Fix union read duplicating rows for non-String 
partition columns (#3500)
     add dfc06b0a6 Initial Commit
     add 2ab9022c1 Initial Commit
     add c912ccd7c [github] Update GitHub issue template
     add f83b32ca6 [feat] Support basic write & read (#2)
     add 40cfb79e6 [hotfix] Ignore some file license check (#4)
     add 69b0ead1a [feat] Add more functions to the Rust client Admin (#5)
     add 4779328d2 [feat] Set up uv, ruff, and other settings for Python 
binding (#7)
     add bb8abafa1 [feat] Create Python bindings for metadata (#8)
     add 757a833a8 [feat] Create Python bindings for Fluss Admin (#6)
     add 1d937bbe8 [chore] Introduce IT infra and add IT for database 
operations in admin (#28)
     add 9533ce2e7 [chore] Supports PyO3 in m1 arm 64 (#33)
     add a2cc54dd4 [feat] Create Python bindings for table writing and reading 
(#9)
     add 2f722d285 [test] Add IT for table operation in admin (#32)
     add 1ec45d3c3 [feat] Add examples and stub files for Python bindings (#10)
     add c0374eb31 [chore] Move list offsets to admin (#35)
     add b27625907 [feat] Support append arrow record batch (#34)
     add 073d41ba8 [chore] Bump arrow version to 57 (#58)
     add 6ea79746e chore: add integration test for scan records after append 
(#51)
     add fdbe7f4ac [chore] Add ipc_compression feature to arrow dependency (#59)
     add a62d9fe42 [chore] Fix build fail on mac os (#61)
     add 121a03606 feat: implement get_long for GenericRow (#49)
     add 236ae5af4 feat: implement Display trait for DataType and related types 
(#50)
     add 3d3de438e chore: fix ci (#69)
     add 0f8ff0b50 feat: support ColumnPruning (#57)
     add de9022e70 feat: Implement JsonSerde for all datatypes (#53)
     add f98f49fcf chore: implemented all get methods for GenericRow (#82)
     add 123998000 chore: fix GenericRow null detection (#86)
     add 5ed475e9f chore: Implement datatype conversion for all types in 
arrow.rs (#81)
     add c3f110436 feat: introduce cpp bindings (#83)
     add 8e273a801 chore: update readme to mark it as official rust client (#88)
     add bf42412bb chore: abort last not complete batch (#91)
     add d5586643d feat: support subscribe from remote (#76)
     add 5b31e28a9 chore: upgrade opendal and adopt jiff (#95)
     add d634a7083 chore: use log over tracing (#96)
     add 746f94883 feat: support s3 as remote segment (#93)
     add 57ebe0c49 chore: parse_ipc_message should return exception instead of 
return None if parse failed (#97)
     add e585d1f0a chore: Improve error (#77)
     add 7772f15e8 chore: Update the InternalRow Trait: get_binary, get_bytes 
to return &[u8] (#104)
     add f4b0628b2 chore: optimize get_char method (#105)
     add f55375905 feat: support ListOffset/SubscribeBatch/DropTable for cpp 
bindings (#100)
     add 391891753 chore: introduce prefetch to improve log poll performance 
(#103)
     add 7515f7159 chore: fix bug where column prune won't work when 
compression is enabled (#108)
     add 2bf3701aa chore: scanner should retry when bucket lead is not 
available (#102)
     add 02ca3eb4f chore: add integration test for list offsets (#52)
     add 4a225d501 feat: Introduce HashBucketAssigner (#117)
     add eea8da1fd chore: rust client to return error when currently 
unimplemented non-default ZSTD compression is configured (#120)
     add 3d8483ef5 chore: add integration tests for subscribe_batch and 
project_by_name (#116)
     add 2fc00e2c1 feat: support bazel build for cpp bindings (#107)
     add 9f834df90 feat: implement CompactedRowWriter (#121)
     add 83c452563 chore: add license header to fix ci (#123)
     add 526d360f4 feat: return error for partitioned tables in 
FlussConnection#get_table (#115)
     add 49c304332 chore: fix append hang issue (#126)
     add 6459f2cdb chore: Fix scanner's example documentation test to allow 
`cargo test --release` to complete (#129)
     add 305a44873 feat:  introduce CompactedKeyEncoder (#124)
     add 1f5479505 feat: log scanner support poll record batch directly
     add d61086fa8 feat: introduce CompactedRowReader, CompactedRow, 
CompactedRowDeserializer (#131)
     add 98497bef8 chore: fix Box leaking and batch API refactor (#136)
     add 0f4f4ec62 chore: Improve write path error handling logic (#132)
     add 69b3ccc3d chore: improve datum, use Cow to reduce verbosity and avoid 
Box::leak gymnastics (#139)
     add e9d16ae99 chore: implement zero copy in CompactedRowReader (#138)
     add 979c0d428 chore: fix potential deadlock with holding lock during await 
(#145)
     add 63509b155 chore: decrement flushes_in_progress counter in 
await_flush_comp (#147)
     add 3cdc49526 chore: add DEVELOPMENT.md (#155)
     add d8fdcc7a3 feat: introduce KvRecordBatchBuilder (#156)
     add 207a7d183 chore: Introduce WriteFormat and various small changes to 
unblock Upsert implementation (#158)
     add b9cc78bf3 feat: Introduce CompactedRowEncoder (#161)
     add c4d5b0214 feat: add column projection support to Python LogScanner 
(#151)
     add dce62d6d4 chore: fix read deadlock (#165)
     add 93048ed0d feat: introduce lookup support for primary key tables (#159)
     add 9ce10ce55 feat: Introduce python bindings row-based append API (#142)
     add a4409833d chore: Improve read path error handling logic (#143)
     add ffc026ddc chore: correct log record batch checksum bounds (#172)
     add 41f824fe7 feat: Introduce KVReadContext and read path wiring (#174)
     add f519ad9f8 feat: introduce KvWriteBatch and PutKvRequest (#176)
     add db565f97e feat: support all basic datatypes in compacted key 
encoder(continuation) (#175)
     add 0e31ef49c feat: Introduce UpsertWriter (#169)
     add d263743b0 feat: Introduce Kv table example (#181)
     add 76029f7d6 feat: KvWriteBatch wiring in Sender (#184)
     add 203093cdb feat: Fix TableLookup so that SchemaId field bytes are not 
passed to CompactedRow::from_bytes(), these fields can be skipped as current 
rust client implementation does not check schema and already passes row_type 
(#190)
     add 2f3269d2c feat: Arrow serialization for decimal and temporal types 
(#196)
     add ed9bca678 chore: invalidate leader info on stale metadata error when 
handling fetch response (#189)
     add e2e0c22ab test: Kv Table Integration tests (#192)
     add add9dd72e test: add it test for put & get kv for all supported 
datatypes (#204)
     add eda19e223 feat: introduce priority queue for downloading remote 
segments (#187)
     add d695cb803 feat: Implement Admin APIs for partitioning (#208)
     add 8406db0ee chore: add more info for RecordBatches (#211)
     add 9408a03ef feat: Support Arrow append operations for decimals, temporal 
types in Python (#206)
     add 54ef268e1 chore: introduce new with capacity to align generic row with 
java side (#212)
     add 24c46340f test: add it for produce & scan log for all supported 
datatypes (#205)
     add bf72035a3 chore: introduce SecurityTokenManager to update token in the 
background (#213)
     add c80d0aa25 chore: Add blocking poll into python bindings (#154)
     add bc7efea50 chore: Introduce PartitionGetter and Partition utils (#214)
     add 9371dcc31 [chore] Implement is_auto_partitioned method in table.rs 
(#48)
     add 0fe410e16 chore: minor fix for rust code (#218)
     add 06b30c2a7 chore:  Fix async fn panic in CancellationSafeFuture when 
future completes
     add 9ccf59822 chore: support estimated_size_in_bytes for write batch (#219)
     add 2db8982a1 feat: support scan from oss (#217)
     add 80ac6fd47 feat: Implement partitioning in Upsert / Lookup (#220)
     add 9a6157613 feat: support produce partitioned table (#228)
     add b7d511dc7 feat: support list offset for partitioned table (#229)
     add 17ba9d122 feat: support list partition offset in cpp binding (#231)
     add da22ac85d feat: introduce scan record batch in cpp (#230)
     add 21585a568 chore: make Config#bootstrap_server required (#233)
     add b399e8e49 chore: accept Into<String> to improve api usage (#234)
     add 9231fb4b2 feat: add table partition scanning (#222)
     add becde5511 feat: support subscribe partition in cpp binding (#236)
     add 2ad9dfe3d chore: Reject table scan for INDEXED format or KV table 
(#238)
     add f7fb74164 feat: introduce kv tables support in python (#239)
     add a084659ac feat: Support different poll methods (#246)
     add 63683f5d5 chore: Change upsert and delete to use read only self 
reference by using mutex to guard mutable encoders (#247)
     add 60b86d72e chore: refator to builder pattern to create log scanner for 
CPP (#249)
     add 4ed23ff72 chore: rename subscribe_batch to subscribe_buckets (#255)
     add b4836474b feat: Support drop_table, partitions and offsets methods in 
python bindings (#150)
     add 28cd8b0c1 feat: support unsubscribe partition (#257)
     add 024c1d146 feat: introduce list partitions in cpp binding (#260)
     add 40f13b182 chore: python binding cleanup and bit of refactor (#264)
     add 5a334bcc0 chore: Fire-and-forget behaviour for effecient batching 
(#258)
     add 6ca3bd7b7 chore: introduce deny to check licenses (#267)
     add 9202964fa ci: Fix unstable poll_batches (#272)
     add b677a6b4b chore: remove async from queueing while writing (#271)
     add f0a740e9f feat: Add unsubscribe_partition to python bindings (#277)
     add b05a497be build: add how to release doc (#268)
     add e9e3db4fc feat: support temporal types in CPP (#266)
     add c68ef0322 feat: support decimals in cpp binding (#265)
     add ac28f8ee5 feat: Add subscribe_partition_buckets method and partitions 
support (#273)
     add a056cfd05 chore: remove async for upsert/delete/append in python (#280)
     add 6e7aa7c12 feat: support database-level ops in python (#279)
     add db996f870 chore: introduce getters in CPP Datum (#281)
     add 1c0b97ae8 feat: introduce database level ops for cpp bindings (#286)
     add ecb12288d doc: introduce how to verify a release document (#282)
     add f3a42f1d9 chore: cleanup and fix partial update in python (#292)
     add d44898ecf feat: support kv tables in CPP (#288)
     add 02fc41171 feat: Partitioned KV tables python example (#290)
     add 219c01683 doc: add python docs and API reference (#291)
     add f51691194 doc: Add documentation for rust (#242)
     add 9c0776919 feat: support projection by names in CPP (#294)
     add de88bbf7e chore: Builder pattern, cleanup, consistent API (#296)
     add ef5f60044 chore: refacotr config for CPP and connect -> create  in cpp 
binding(#298)
     add 309d6ea8b chore: Verify API consistent across clients (#302)
     add 2865891c0 chore: align DataLakeFormat parsing with lake format config 
option (#306)
     add 7ec82a549 feat: add unsubscribe to all clients (#305)
     add 110690c60 chore: Fix issue where FixedSizedBinary type cannot be build 
in arrow (#304)
     add 80d903f0b chore: remove LATEST_OFFSET which isn't handle by server 
(#312)
     add 815596db9 chore: allow propagating hostname as raw bootstrap address 
(#307)
     add bf20af924 [docs] introduce client doc website (#300)
     add 6adf7fee6 chore: cleanup after docs review (#313)
     add 32347c743 chore: Fix API error not being propagated on python side. 
(#340)
     add e1ec84216 chore: added Default Implementations for Missing Types (#326)
     add 5333e45c6 chore: default cpp builds to release mode (#345)
     add c9e72e649 doc: Add missed API documentation update (#337)
     add 919e218fb chore: added unit test cases and throw an exception when any 
field doesn't exist on RowType (#310)
     add 1720ca046 chore: avoid data copy in CPP bindings (#330)
     add 9eadba8b4 test: introduce python integration tests (#341)
     add 56d5ca1af chore: Fix issue where interleaving non-Pk column with PK 
columns cause lookup panic (#346)
     add bb685325d chore: add API reference for CustomProperty (#336)
     add 11299f2ce chore: add missing ChangeType enum and doc in C++. Add test 
coverage for ChangeType in integration test. (#334)
     add 70160fd09 chore: fix sparse to dense representation for CPP lookup 
(#348)
     add 74c924156 chore: add CI for documentation. Minor improvement and 
organisation of website (#350)
     add f79a9bd47 chore: update docs after opaque types CPP rework (#349)
     add cb4a9b306 chore: make RowView shared_ptr (#353)
     add eeb5200a7 chore: Scan results returned per bucket python/cpp (#351)
     add 0f4556061 chore: introduce c++ integration test (#352)
     add 58e9de57c chore: add notes on lake snapshot (#359)
     add 60d3f41e6 chore: introduce max poll records config option (#355)
     add 30a8bae77 chore: fix broken link and version mismatch in README (#364)
     add d1d832381 chore: fix IT failure from additional table properties (#368)
     add 6fd0ab205 chore: rename BucketView to BucketRecords (#370)
     add 48624420c feat: Add round robin bucket assigner (#360)
     add 81b06aed4 chore: Fix panic / crashes in Rust and C++ (#365)
     add 7eb86a70d chore: make batch timeout configurable (#371)
     add bb5bdf39f perf: introduce streaming download for file download (#381)
     add 39bc2094a feat: Add get_server_nodes to Admin (#363)
     add 1f4ff05eb feat: support sasl/plain auth (#375)
     add 99d662135 chore:fix test_get_server_nodes to use shared cluster (#392)
     add e3e9e4e1e [doc] Update API Ref following SASL / NoKeyAssigner (#396)
     add 7bb905d1f [doc] Update doc after rust / c++ panic fixes (#395)
     add c100ee375 chore: Add missing python type stubs (#400)
     add 20072070a docs: add cpp build guides with examples (#376)
     add 316d1a052 chore: update dependency list for release 0.1.0
     add eb6003607 Bump version to 0.2.0
     add 0ea4e071d ci: update verify tag version
     add 7818f020e chore: update rust docs (#416)
     add 1fefc8da9 chore: error handling fix CPP, for pointer returning methods 
(#409)
     add 0e86cc37e ci: fix ci build wheel issue for python (#419)
     add b9944eb31 chore: fix mut schema builder public api (#420)
     add 2f0f517d9 [doc] Setup workflow for doc publish (#414)
     add 8ba776278 doc: update create a release doc (#421)
     add b953ab193 feat: Add getter/setter property for 
writer_bucket_no_key_assigner config in python (#397)
     add 8fdccce0d chore: update testing fluss image to 0.9.0 (#426)
     add f2b7d7fa6 chore: Remove config duplication in examples (#427)
     add 3ddbebeff ci: parallelize cpp integration tests (#434)
     add 036fac02b chore: pre-size Arrow builders and recommend jemalloc for 
write path (#430)
     add e3316f6a1 ci: parallelize python integration tests (#435)
     add 1bf6d96b4 ci: check tablet server availabitility (#437)
     add 89e77ba05 chore: refactor to typed Column Writers (#440)
     add 520c842b4 feat(python): add get_primary_keys() method to Schema class  
(#436)
     add 0fe3978a6 chore: added is_retriable() to FlussError (#422)
     add 45be5c1ad feat: allow configuring scanner fetch parameters (#417)
     add 7413fce5a [client] Add LookupResult::to_record_batch() (#411)
     add ce67b9fad feat: introduce idempotent writes (#404)
     add 5f1d86ef9 chore: no-op .asf.yaml change to attempt trigger gh page 
setup
     add 007244e27 troubeshooting test commit
     add 7d8ab3d82 INFRA-27705 - infrastructure test commit
     add fd2de539d INFRA-27705 - remove test label
     add a106cb6f5 doc: optimize pyfluss description in pypi (#439)
     add c5cddd9e7 Revert "Bump version to 0.2.0"
     add 7b9a400da [doc] Update fluss-rust readme markdown (#415)
     add 05b73f46f chore: Idempotency bug: OOO loop when response is lost but 
subsequent batches succeed (#448)
     add ff98cc7af chore: added check to get_admin() before creating new admin 
(#369)
     add ffa14b205 chore: make get admin sync (#450)
     add 5a230cb7c chore: update dependency list for release 0.1.0
     add bcea56689 Bump version to 0.2.0
     add aed85b755 feat: Add array data type support (#433)
     add f297f2c7e [BUG] Fix possible TOCTOU race between leader discovery and 
server lookup in Lookuper (#451)
     add da7b026d6 [TASK-470] Optimize null append in Arrow builder (#471)
     add b2f732619 chore: fix annoying python CI/CD errors due to unsuported 
action (#473)
     add 8957671c1 feat: [TASK-315] Proto + RPC for LimitScan (#472)
     add 0010433ee ci: fix release rust issue
     add 037d0a91e ci: pin pypi publish action to ASF-approved SHA
     add 4de077845 ci: improve read me for python
     add 7e122e49c feat(iceberg): add IcebergBinaryRowWriter (#366)
     add 0f7cfc136 fix: add missing write_array impl to IcebergBinaryRowWriter 
(#477)
     add 6c3c4b539 chore: improve cargo cache (#478)
     add 8fa67f6cd fix: upgrade testcontainers to 0.27.2 to resolve CVEs (#482)
     add 1d97a1010 chore: skip duplicate pyfluss build in Python CI (#483)
     add cbe878f17 feat: add async 'for' loop support to LogScanner (#424) 
(#438)
     add a36bf1be3 [test][infra] Unify IT infrastructure for all clients (#476)
     add 411b1dc79 fix python 3.11 bug in tests with async wait_for (#488)
     add d9b5358dd chore: fix docusaurus (#486)
     add 1da2c108d [ci] use swatinem/rust-cache (#485)
     add e43d35a09 feat: Add array data type support for Python (#474)
     add 82d08bc0d [ci] Upgrade checkout@v4 to v6 and setup-python@v5 to v6 
(#491)
     add b01930f0c feat: Byte-sized cap instead of hard one for ArrowWriter 
(#443)
     add d1e601509 feat: Elixir bindings initial PR (#452)
     add ce1d440fd [ci/cd] fix python tests with more strict scoping (#494)
     add 5e13f46fc feat: support batch lookup (#216)
     add a7c401337 [ci] optimize check_license_and_formatting (#503)
     add 16c895851 [ci] cache C++ build with sccache (#505)
     add e6f95e62c [rust][chore] fix unknow error code lost for forward 
compatibility path (#509)
     add 7b4d711ab feat: [rust] prefix lookup support (#500)
     add 61db34e66 chore: use the same cache in rust integration tests (#506)
     add afce91246 [c++] Add c++ support for Array data type (#501)
     add 746391317 build(deps): bump actions/download-artifact from 4 to 8 
(#408)
     add 035fcfa4b feat: [metrics] Create metrics framework and add connection 
metrics (#407)
     add f6517e800 feat: Basic CI/CD for elixir (#497)
     add cb5908de0 feat: [elixir] fine-grained errors (#507)
     add 1257cc81f feat: (Python) Add async context manager (#487)
     add 4888f49ef chore: regenerate Cargo.lock for declared metrics deps (#518)
     add 003828763 chore: bump rand from 0.9.2 to 0.9.3 (#512)
     add 93c28cc15 chore: bump actions/upload-artifact from 4 to 7 (#521)
     add 142f9ccb2 chore: bump rustls-webpki from 0.103.10 to 0.103.13 (#513)
     add 273c238c7 fix: [bindings] map RpcError to NetworkException for Java 
parity (#519)
     add f433709a9 feat: make LogScanner poll methods async to prevent event 
loop blocking (#495)
     add cb367e83d chore: fix context_manager in python for async handling 
(#527)
     add 024aebb41 feat: Add nullability support in python (#522)
     add 01c9a221c [rust] lookup decoding schema id  (#517)
     add 47973d1b1 chore: fix python CI - reduce workers to 2 with loadfile 
distribution (#529)
     add 2356cf4e0 chore: Add validation for numeric config fields (#449)
     add 1ff4eecd0 [c++] Add nullability support for data type in c++ (#525)
     add e274bd156 [rust] Support API_VERSION in rust client. (#531)
     add d0bea1ebe Support FixedSizeBinary in python (#538)
     add b0c54862f [rust][writer] Add DynamicWriteBatchSizeEstimator (#532)
     add 55b3e71f2 [tests] Add integration tests for array data type (#523)
     add 9704b0c54 [python] Add prefix lookup support in python (#540)
     add 2a6f0a44c capture cluster container logs as CI artifact (#542)
     add 4a2fdede6 feat: add end-to-end ROW (nested struct) column 
serialization support
     add 2c1809794 fixes and improvements
     add 338b6b8ed feat: Add RecordBatchLogReader for bounded log reading (#446)
     add e17e0873f feat: implement MAP data type support
     add 5425b9366 fix: close Arrow read-path gaps for MAP
     add dbf5f80ee chore: fix main broken due to new clippy useless_conversion 
(#548)
     add 5f452c879 [metrics] Add scanner fetch and remote download metrics 
(#553)
     add 29ea5cedb docs: add documentation for MAP dtype (#556)
     add 32ae530ce [chore] improve ergonomics for MAP dt, docs additions
     add 50171d484 [ci] scope rust integration job to test_fluss target only 
(#561)
     add e0ecf8ba9 [rust] integration tests for MAP dt + restructure ITs for 
complex dts (#560)
     add 5ef93a8ba [test] Add Rust integration coverage for 
RecordBatchLogReader bounded reads. (#559)
     add 88f56487a [metrics] Add scanner poll-timing metrics (#555)
     add 5a472b24c feat: [metrics] Add database and table labels for scanner 
metrics (#565)
     add b38859efa  [elixir] feat: Extend Fluss.Config with writer tuning 
options (#566)
     add 087bc9904 [tests] replace fixed tokio::time::sleep workarounds with 
wait_for_table_ready helper. (#564)
     add 634c603e2 [client] Implement BatchScanner with limit-based scan
     add 35a6ec6f4 [client] Fix KV limit-scan decode + enforce limit, support 
schema evolution
     add 52ac57ab7 [elixir] feat: Extend Fluss.Config with scanner tuning 
options (#574)
     add 53da6a8cb chore: [ci] Fix rustdoc warning and promote warning to error 
in CI (#576)
     add 2b0c742f7 [elixir] feat: Extend Fluss.Config with security, SASL and 
connect timeout options (#577)
     add 5a326c68c [elixir] chore: Add dialyzer and tighten Fluss.Config setter 
guards (#582)
     add 7b17abca9 [elixir] feat: Add first batch of admin calls (#583)
     add aeaaef76e feat: [rust] typed column-vector dispatch (#578)
     add dce6509c7 [metrics] Add last_poll_seconds_ago scanner metric (#581)
     add fca116766 [rust] Support paimon key encoder. (#579)
     add a3c0a7214 [elixir] feat: Add get_database_info admin call (#586)
     add c81ac1ed2 [elixir] Optimize CI/CD with proper actions, reusing 
compiled deps (#598)
     add 01b6e5c39 docs: comprehensive README update (#600)
     add 6a97ef792 [python] map and row complex types support (#601)
     add 43aeae433 [c++] add prefix lookup (#606)
     add 05f29f86b [metrics] Add writer pipeline metrics (#609)
     add 61a6593b3 [python] Split examples in Python and enforce executability 
in CI for python examples (#610)
     add ff5f9ede5 [elixir] feat: Allow comment and custom_properties on 
create_database (#597)
     add 0f9d26d9f [python] Add stub test to catch pyi drift in CI (#616)
     add db1130c84 [python] Limit scan (#613)
     add 2bef0f5f6 chore: bump rustler from 0.37.3 to 0.38.0 (#594)
     add 75400d51b chore: bump mozilla-actions/sccache-action from 0.0.9 to 
0.0.10 (#590)
     add 910d6fa47 chore: bump astral-sh/setup-uv from 7.6.0 to 8.2.0 (#591)
     add 45ccba039 chore: bump tokio from 1.51.0 to 1.52.3 (#592)
     add b0643c2ae [c++]  Limit batch scanner (#614)
     add f87bb9685 chore: [metrics] Add client metrics and prometheus example 
(#617)
     add 2f77b041d chore: fix(test-cluster): manage containers via 
testcontainers' Docker client so start/stop share one runtime (#624)
     add eb05c807f chore: fix tighten test cluster cleanup matching (#627)
     add 49849f724 [rust] Sync Fluss 1.x proto definitions and ApiKey registry 
(#628)
     add 54275a22d [client] Allow bootstrap endpoint with unknown server type 
(#622)
     add 647aac602 [rust] Add RPC message wrappers for core DB/table operations
     add 0bf2a1a44 tighten pub visibility for protos
     add 4dc9ecca0 feat: [c++] Add MAP/ROW types, unify complex types under 
Value handle (#611)
     add f0bc5620d [rust] Replace raw i64/i32 with TableId/PartitionId/BucketId 
type aliases in write path (#635)
     add c1903d502 [rust] Add RPC message wrappers for extended operations 
(#630)
     add b8585ebc4 [elixir] feat: Add get_table_info admin call (#640)
     add f8e33d567 [rust] Add Fluss 1.x protocol support to the admin client 
(#631)
     add 676d38fc5 [feat] Support subscribing to primary-key table changelog 
(#639)
     add 39f885df1 [elixir] ci: bump OTP to 28.5.0.2 (#646)
     add c70a4a6cf [elixir] feat: Support full table descriptor options in 
create_table (#647)
     add 89eafb9d6 [FIP-40] Import fluss-rust under fluss-rust/ with preserved 
history
     add 400e132bf [FIP-40] Adapt imported fluss-rust to the monorepo (proto, 
CI, docs, release)

No new revisions were added by this update.

Summary of changes:
 .github/actions/verify-tag-version/action.yml      |   41 +
 .github/dependabot.yml                             |   30 +
 .github/release.yml                                |   42 +
 .github/workflows/ci.yaml                          |    2 +
 .github/workflows/client-integration.yml           |  416 ++
 .github/workflows/license-check.yml                |   12 +-
 .github/workflows/python-release.yml               |  180 +
 .github/workflows/rust-build-and-test.yml          |   82 +
 .github/workflows/{ci.yaml => rust-docs-check.yml} |   62 +-
 .github/workflows/rust-license-and-format.yml      |   98 +
 .github/workflows/rust-release.yml                 |   60 +
 fluss-rust/.cargo/config.toml                      |   22 +
 fluss-rust/.gitignore                              |   54 +
 fluss-rust/.licenserc.yaml                         |   39 +
 fluss-rust/Cargo.lock                              | 4766 ++++++++++++++++++++
 fluss-rust/Cargo.toml                              |   43 +
 fluss-rust/DEPENDENCIES.rust.tsv                   |  325 ++
 fluss-rust/DEVELOPMENT.md                          |  106 +
 fluss-rust/MODULE.bazel                            |   65 +
 fluss-rust/README.md                               |  328 ++
 fluss-rust/bindings/cpp/.bazelrc                   |   37 +
 fluss-rust/bindings/cpp/.clang-format              |   21 +
 fluss-rust/bindings/cpp/.gitignore                 |   27 +
 fluss-rust/bindings/cpp/BUILD.bazel                |  436 ++
 fluss-rust/bindings/cpp/CMakeLists.txt             |  299 ++
 fluss-rust/bindings/cpp/Cargo.toml                 |   38 +
 fluss-rust/bindings/cpp/DEPENDENCIES.rust.tsv      |  309 ++
 fluss-rust/bindings/cpp/README.md                  |   42 +
 fluss-rust/bindings/cpp/bazel/cpp/BUILD.bazel      |   26 +
 fluss-rust/bindings/cpp/bazel/cpp/deps.bzl         |  349 ++
 fluss-rust/bindings/cpp/build.rs                   |   24 +
 fluss-rust/bindings/cpp/ci.sh                      |  101 +
 fluss-rust/bindings/cpp/examples/admin_example.cpp |  122 +
 .../cpp/examples/bazel-consumer/build/BUILD.bazel  |   25 +
 .../cpp/examples/bazel-consumer/build/MODULE.bazel |   39 +
 .../cpp/examples/bazel-consumer/build/main.cc      |   28 +
 .../cpp/examples/bazel-consumer/system/BUILD.bazel |   25 +
 .../examples/bazel-consumer/system/MODULE.bazel    |   44 +
 .../cpp/examples/bazel-consumer/system/main.cc     |   27 +
 fluss-rust/bindings/cpp/examples/example.cpp       |  790 ++++
 .../bindings/cpp/examples/kv_changelog_example.cpp |  130 +
 fluss-rust/bindings/cpp/examples/kv_example.cpp    |  537 +++
 fluss-rust/bindings/cpp/include/fluss.hpp          | 1844 ++++++++
 fluss-rust/bindings/cpp/scripts/ensure_protoc.sh   |  277 ++
 fluss-rust/bindings/cpp/src/admin.cpp              |  403 ++
 fluss-rust/bindings/cpp/src/connection.cpp         |   88 +
 fluss-rust/bindings/cpp/src/ffi_converter.hpp      |  414 ++
 fluss-rust/bindings/cpp/src/lib.rs                 | 3987 ++++++++++++++++
 fluss-rust/bindings/cpp/src/table.cpp              | 1918 ++++++++
 fluss-rust/bindings/cpp/src/type_lowering.hpp      |  144 +
 fluss-rust/bindings/cpp/src/types.rs               |  740 +++
 fluss-rust/bindings/cpp/test/test_admin.cpp        |  356 ++
 .../bindings/cpp/test/test_ffi_converter.cpp       |  240 +
 fluss-rust/bindings/cpp/test/test_kv_changelog.cpp |  182 +
 fluss-rust/bindings/cpp/test/test_kv_table.cpp     | 1890 ++++++++
 fluss-rust/bindings/cpp/test/test_log_table.cpp    | 1964 ++++++++
 fluss-rust/bindings/cpp/test/test_main.cpp         |   35 +
 fluss-rust/bindings/cpp/test/test_sasl_auth.cpp    |  124 +
 fluss-rust/bindings/cpp/test/test_utils.h          |  239 +
 fluss-rust/bindings/elixir/.formatter.exs          |   20 +
 fluss-rust/bindings/elixir/.gitignore              |   10 +
 fluss-rust/bindings/elixir/README.md               |   60 +
 fluss-rust/bindings/elixir/lib/fluss.ex            |   52 +
 fluss-rust/bindings/elixir/lib/fluss/admin.ex      |  211 +
 .../bindings/elixir/lib/fluss/append_writer.ex     |   75 +
 fluss-rust/bindings/elixir/lib/fluss/config.ex     |  243 +
 fluss-rust/bindings/elixir/lib/fluss/connection.ex |   51 +
 .../elixir/lib/fluss/database_descriptor.ex        |   67 +
 .../bindings/elixir/lib/fluss/database_info.ex     |   37 +
 fluss-rust/bindings/elixir/lib/fluss/error.ex      |  127 +
 .../bindings/elixir/lib/fluss/log_scanner.ex       |   97 +
 fluss-rust/bindings/elixir/lib/fluss/native.ex     |   99 +
 fluss-rust/bindings/elixir/lib/fluss/schema.ex     |   74 +
 .../bindings/elixir/lib/fluss/schema_info.ex       |   33 +
 .../bindings/elixir/lib/fluss/server_node.ex       |   37 +
 fluss-rust/bindings/elixir/lib/fluss/table.ex      |   48 +
 .../bindings/elixir/lib/fluss/table_descriptor.ex  |  100 +
 fluss-rust/bindings/elixir/lib/fluss/table_info.ex |   96 +
 .../bindings/elixir/lib/fluss/write_handle.ex      |   44 +
 fluss-rust/bindings/elixir/mix.exs                 |   83 +
 fluss-rust/bindings/elixir/mix.lock                |   15 +
 .../bindings/elixir/native/fluss_nif/Cargo.toml    |   34 +
 .../bindings/elixir/native/fluss_nif/src/admin.rs  |  349 ++
 .../elixir/native/fluss_nif/src/append_writer.rs   |   69 +
 .../elixir/native/fluss_nif/src/async_nif.rs       |   93 +
 .../bindings/elixir/native/fluss_nif/src/atoms.rs  |  224 +
 .../bindings/elixir/native/fluss_nif/src/config.rs |  147 +
 .../elixir/native/fluss_nif/src/connection.rs      |   43 +
 .../bindings/elixir/native/fluss_nif/src/lib.rs    |   47 +
 .../elixir/native/fluss_nif/src/log_scanner.rs     |  166 +
 .../elixir/native/fluss_nif/src/row_convert.rs     |  267 ++
 .../bindings/elixir/native/fluss_nif/src/schema.rs |  173 +
 .../bindings/elixir/native/fluss_nif/src/table.rs  |   89 +
 .../elixir/native/fluss_nif/src/write_handle.rs    |   47 +
 fluss-rust/bindings/elixir/test/config_test.exs    |  236 +
 .../elixir/test/database_descriptor_test.exs       |  169 +
 fluss-rust/bindings/elixir/test/error_test.exs     |   87 +
 fluss-rust/bindings/elixir/test/fluss_test.exs     |   66 +
 .../elixir/test/integration/admin_test.exs         |  468 ++
 .../elixir/test/integration/log_table_test.exs     |  372 ++
 fluss-rust/bindings/elixir/test/support/cluster.ex |  152 +
 .../elixir/test/support/integration_case.ex        |   43 +
 .../bindings/elixir/test/table_descriptor_test.exs |   86 +
 fluss-rust/bindings/elixir/test/test_helper.exs    |   27 +
 fluss-rust/bindings/python/Cargo.toml              |   40 +
 fluss-rust/bindings/python/DEPENDENCIES.rust.tsv   |  310 ++
 fluss-rust/bindings/python/DEVELOPMENT.md          |  135 +
 fluss-rust/bindings/python/PYPI_README.md          |   28 +
 fluss-rust/bindings/python/README.md               |   21 +
 .../bindings/python/example/complex_types.py       |  238 +
 fluss-rust/bindings/python/example/kv_changelog.py |  103 +
 fluss-rust/bindings/python/example/log_table.py    |  430 ++
 .../python/example/partitioned_kv_table.py         |  138 +
 .../bindings/python/example/partitioned_table.py   |  176 +
 fluss-rust/bindings/python/example/pk_table.py     |  240 +
 fluss-rust/bindings/python/fluss/__init__.py       |   20 +
 fluss-rust/bindings/python/fluss/__init__.pyi      | 1291 ++++++
 .../bindings/python/fluss/py.typed                 |    0
 fluss-rust/bindings/python/pyproject.toml          |  105 +
 fluss-rust/bindings/python/src/admin.rs            |  633 +++
 fluss-rust/bindings/python/src/config.rs           |  535 +++
 fluss-rust/bindings/python/src/connection.rs       |  150 +
 fluss-rust/bindings/python/src/error.rs            |  276 ++
 fluss-rust/bindings/python/src/lib.rs              |  145 +
 fluss-rust/bindings/python/src/lookup.rs           |  214 +
 fluss-rust/bindings/python/src/metadata.rs         |  767 ++++
 fluss-rust/bindings/python/src/table.rs            | 2969 ++++++++++++
 fluss-rust/bindings/python/src/upsert.rs           |  161 +
 fluss-rust/bindings/python/src/utils.rs            |  179 +
 fluss-rust/bindings/python/src/write_handle.rs     |   78 +
 fluss-rust/bindings/python/stubtest-allowlist.txt  |   27 +
 fluss-rust/bindings/python/test/conftest.py        |  511 +++
 fluss-rust/bindings/python/test/test_admin.py      |  319 ++
 .../bindings/python/test/test_batch_scanner.py     |  221 +
 .../bindings/python/test/test_context_manager.py   |  116 +
 fluss-rust/bindings/python/test/test_examples.py   |   66 +
 .../bindings/python/test/test_kv_changelog.py      |  112 +
 fluss-rust/bindings/python/test/test_kv_table.py   |  825 ++++
 fluss-rust/bindings/python/test/test_log_table.py  | 1627 +++++++
 fluss-rust/bindings/python/test/test_sasl_auth.py  |  108 +
 fluss-rust/bindings/python/test/test_schema.py     |  150 +
 fluss-rust/copyright.txt                           |   17 +
 fluss-rust/crates/examples/Cargo.toml              |   62 +
 fluss-rust/crates/examples/DEPENDENCIES.rust.tsv   |  300 ++
 .../crates/examples/src/example_kv_changelog.rs    |   96 +
 fluss-rust/crates/examples/src/example_kv_table.rs |  118 +
 .../examples/src/example_partitioned_kv_table.rs   |  150 +
 .../src/example_partitioned_prefix_lookup.rs       |  144 +
 .../crates/examples/src/example_prefix_lookup.rs   |  120 +
 .../examples/src/example_prometheus_metrics.rs     |  138 +
 fluss-rust/crates/examples/src/example_table.rs    |   97 +
 fluss-rust/crates/fluss-test-cluster/Cargo.toml    |   36 +
 fluss-rust/crates/fluss-test-cluster/build.rs      |   32 +
 fluss-rust/crates/fluss-test-cluster/src/lib.rs    |  663 +++
 fluss-rust/crates/fluss-test-cluster/src/main.rs   |  103 +
 .../crates/fluss-test-cluster/test-images.env      |    4 +
 fluss-rust/crates/fluss/Cargo.toml                 |   91 +
 fluss-rust/crates/fluss/DEPENDENCIES.rust.tsv      |  297 ++
 fluss-rust/crates/fluss/README.md                  |  105 +
 fluss-rust/crates/fluss/build.rs                   |   42 +
 fluss-rust/crates/fluss/src/bucketing/mod.rs       |  265 ++
 fluss-rust/crates/fluss/src/client/admin.rs        |  883 ++++
 fluss-rust/crates/fluss/src/client/connection.rs   |  187 +
 fluss-rust/crates/fluss/src/client/credentials.rs  |  437 ++
 .../fluss/src/client/lookup/lookup_client.rs       |  250 +
 .../crates/fluss/src/client/lookup/lookup_query.rs |  130 +
 .../crates/fluss/src/client/lookup/lookup_queue.rs |  148 +
 .../fluss/src/client/lookup/lookup_sender.rs       |  711 +++
 fluss-rust/crates/fluss/src/client/lookup/mod.rs   |   39 +
 fluss-rust/crates/fluss/src/client/metadata.rs     |  370 ++
 fluss-rust/crates/fluss/src/client/mod.rs          |   34 +
 .../crates/fluss/src/client/schema_getter.rs       |   76 +
 fluss-rust/crates/fluss/src/client/table/append.rs |  157 +
 .../crates/fluss/src/client/table/batch_scanner.rs |  836 ++++
 .../fluss/src/client/table/log_fetch_buffer.rs     | 1044 +++++
 fluss-rust/crates/fluss/src/client/table/lookup.rs |  822 ++++
 fluss-rust/crates/fluss/src/client/table/mod.rs    |  167 +
 .../fluss/src/client/table/partition_getter.rs     |  199 +
 fluss-rust/crates/fluss/src/client/table/reader.rs |  701 +++
 .../crates/fluss/src/client/table/remote_log.rs    | 1343 ++++++
 .../crates/fluss/src/client/table/scanner.rs       | 3191 +++++++++++++
 fluss-rust/crates/fluss/src/client/table/upsert.rs |  569 +++
 .../crates/fluss/src/client/write/accumulator.rs   | 1789 ++++++++
 fluss-rust/crates/fluss/src/client/write/batch.rs  |  917 ++++
 .../crates/fluss/src/client/write/broadcast.rs     |  133 +
 .../fluss/src/client/write/bucket_assigner.rs      |  260 ++
 .../fluss/src/client/write/dynamic_batch_size.rs   |  147 +
 .../crates/fluss/src/client/write/idempotence.rs   |  767 ++++
 fluss-rust/crates/fluss/src/client/write/mod.rs    |  265 ++
 fluss-rust/crates/fluss/src/client/write/sender.rs | 1802 ++++++++
 .../crates/fluss/src/client/write/write_format.rs  |   66 +
 .../crates/fluss/src/client/write/writer_client.rs |  247 +
 fluss-rust/crates/fluss/src/cluster/cluster.rs     |  549 +++
 fluss-rust/crates/fluss/src/cluster/mod.rs         |  148 +
 .../fluss/src/compression/arrow_compression.rs     |  264 ++
 .../arrow_compression_ratio_estimator.rs           |  105 +
 fluss-rust/crates/fluss/src/compression/mod.rs     |   22 +
 fluss-rust/crates/fluss/src/config.rs              |  683 +++
 fluss-rust/crates/fluss/src/error.rs               |  250 +
 fluss-rust/crates/fluss/src/io/file_io.rs          |  157 +
 fluss-rust/crates/fluss/src/io/mod.rs              |   44 +
 fluss-rust/crates/fluss/src/io/storage.rs          |  108 +
 fluss-rust/crates/fluss/src/io/storage_fs.rs       |   30 +
 fluss-rust/crates/fluss/src/io/storage_memory.rs   |   24 +
 fluss-rust/crates/fluss/src/io/storage_oss.rs      |   45 +
 fluss-rust/crates/fluss/src/io/storage_s3.rs       |   48 +
 fluss-rust/crates/fluss/src/lib.rs                 |  155 +
 fluss-rust/crates/fluss/src/metadata/acl.rs        |  343 ++
 .../crates/fluss/src/metadata/cluster_health.rs    |  109 +
 fluss-rust/crates/fluss/src/metadata/config.rs     |  151 +
 .../crates/fluss/src/metadata/data_lake_format.rs  |   64 +
 fluss-rust/crates/fluss/src/metadata/database.rs   |  258 ++
 fluss-rust/crates/fluss/src/metadata/datatype.rs   | 1992 ++++++++
 fluss-rust/crates/fluss/src/metadata/goal_type.rs  |   68 +
 fluss-rust/crates/fluss/src/metadata/json_serde.rs | 1154 +++++
 .../crates/fluss/src/metadata/kv_snapshot.rs       |  171 +
 .../crates/fluss/src/metadata/kv_snapshot_lease.rs |  119 +
 .../crates/fluss/src/metadata/lake_snapshot.rs     |   83 +
 fluss-rust/crates/fluss/src/metadata/mod.rs        |   60 +
 fluss-rust/crates/fluss/src/metadata/partition.rs  |  476 ++
 .../crates/fluss/src/metadata/producer_offsets.rs  |  141 +
 fluss-rust/crates/fluss/src/metadata/rebalance.rs  |  187 +
 .../fluss/src/metadata/register_producer_result.rs |   66 +
 fluss-rust/crates/fluss/src/metadata/remote_log.rs |   59 +
 .../crates/fluss/src/metadata/schema_util.rs       |  204 +
 fluss-rust/crates/fluss/src/metadata/server_tag.rs |   61 +
 fluss-rust/crates/fluss/src/metadata/table.rs      | 1675 +++++++
 .../crates/fluss/src/metadata/table_change.rs      |  243 +
 .../crates/fluss/src/metadata/table_stats.rs       |  140 +
 fluss-rust/crates/fluss/src/metrics.rs             |  875 ++++
 fluss-rust/crates/fluss/src/record/arrow.rs        | 2606 +++++++++++
 fluss-rust/crates/fluss/src/record/error.rs        |   27 +
 fluss-rust/crates/fluss/src/record/kv/kv_record.rs |  351 ++
 .../crates/fluss/src/record/kv/kv_record_batch.rs  |  456 ++
 .../fluss/src/record/kv/kv_record_batch_builder.rs |  582 +++
 .../fluss/src/record/kv/kv_record_read_context.rs  |  165 +
 fluss-rust/crates/fluss/src/record/kv/mod.rs       |   44 +
 .../crates/fluss/src/record/kv/read_context.rs     |   45 +
 fluss-rust/crates/fluss/src/record/kv/test_util.rs |   50 +
 .../fluss/src/record/kv/value_record_batch.rs      |  188 +
 fluss-rust/crates/fluss/src/record/mod.rs          |  327 ++
 .../crates/fluss/src/row/binary/binary_writer.rs   |  318 ++
 .../src/row/binary/iceberg_binary_row_writer.rs    |  564 +++
 fluss-rust/crates/fluss/src/row/binary/mod.rs      |   30 +
 fluss-rust/crates/fluss/src/row/binary_array.rs    | 1310 ++++++
 fluss-rust/crates/fluss/src/row/binary_map.rs      |  760 ++++
 fluss-rust/crates/fluss/src/row/column.rs          |  736 +++
 fluss-rust/crates/fluss/src/row/column_vector.rs   |  650 +++
 fluss-rust/crates/fluss/src/row/column_writer.rs   | 1613 +++++++
 fluss-rust/crates/fluss/src/row/columnar.rs        |  364 ++
 .../src/row/compacted/compacted_key_writer.rs      |  123 +
 .../fluss/src/row/compacted/compacted_row.rs       |  626 +++
 .../src/row/compacted/compacted_row_reader.rs      |  569 +++
 .../src/row/compacted/compacted_row_writer.rs      |  277 ++
 fluss-rust/crates/fluss/src/row/compacted/mod.rs   |   30 +
 fluss-rust/crates/fluss/src/row/datum.rs           | 1595 +++++++
 fluss-rust/crates/fluss/src/row/decimal.rs         |  472 ++
 .../fluss/src/row/encode/compacted_key_encoder.rs  |  556 +++
 .../fluss/src/row/encode/compacted_row_encoder.rs  |   77 +
 fluss-rust/crates/fluss/src/row/encode/mod.rs      |  184 +
 .../fluss/src/row/encode/paimon_key_encoder.rs     |  162 +
 fluss-rust/crates/fluss/src/row/field_getter.rs    |  315 ++
 .../crates/fluss/src/row/fixed_schema_decoder.rs   |  196 +
 fluss-rust/crates/fluss/src/row/lookup_row.rs      |  133 +
 fluss-rust/crates/fluss/src/row/mod.rs             |  438 ++
 fluss-rust/crates/fluss/src/row/paimon/mod.rs      |   20 +
 .../src/row/paimon/paimon_binary_row_writer.rs     |  552 +++
 fluss-rust/crates/fluss/src/row/projected_row.rs   |  287 ++
 fluss-rust/crates/fluss/src/row/row_decoder.rs     |  137 +
 fluss-rust/crates/fluss/src/row/view.rs            |  672 +++
 fluss-rust/crates/fluss/src/rpc/api_key.rs         |  336 ++
 fluss-rust/crates/fluss/src/rpc/api_version.rs     |   79 +
 fluss-rust/crates/fluss/src/rpc/convert.rs         |   96 +
 fluss-rust/crates/fluss/src/rpc/error.rs           |   54 +
 fluss-rust/crates/fluss/src/rpc/fluss_api_error.rs |  510 +++
 fluss-rust/crates/fluss/src/rpc/frame.rs           |  110 +
 .../src/rpc/message/acquire_kv_snapshot_lease.rs   |   56 +
 .../crates/fluss/src/rpc/message/add_server_tag.rs |   48 +
 .../fluss/src/rpc/message/alter_cluster_configs.rs |   47 +
 .../crates/fluss/src/rpc/message/alter_database.rs |   55 +
 .../crates/fluss/src/rpc/message/alter_table.rs    |   62 +
 .../crates/fluss/src/rpc/message/api_versions.rs   |   50 +
 .../crates/fluss/src/rpc/message/authenticate.rs   |   84 +
 .../fluss/src/rpc/message/cancel_rebalance.rs      |   46 +
 .../crates/fluss/src/rpc/message/create_acls.rs    |   47 +
 .../fluss/src/rpc/message/create_database.rs       |   65 +
 .../fluss/src/rpc/message/create_partition.rs      |   57 +
 .../crates/fluss/src/rpc/message/create_table.rs   |   60 +
 .../fluss/src/rpc/message/database_exists.rs       |   49 +
 .../src/rpc/message/delete_producer_offsets.rs     |   46 +
 .../src/rpc/message/describe_cluster_configs.rs    |   44 +
 .../crates/fluss/src/rpc/message/drop_acls.rs      |   47 +
 .../crates/fluss/src/rpc/message/drop_database.rs  |   51 +
 .../src/rpc/message/drop_kv_snapshot_lease.rs      |   46 +
 .../crates/fluss/src/rpc/message/drop_partition.rs |   56 +
 .../crates/fluss/src/rpc/message/drop_table.rs     |   55 +
 fluss-rust/crates/fluss/src/rpc/message/fetch.rs   |   55 +
 .../fluss/src/rpc/message/get_cluster_health.rs    |   44 +
 .../fluss/src/rpc/message/get_database_info.rs     |   49 +
 .../src/rpc/message/get_kv_snapshot_metadata.rs    |   54 +
 .../fluss/src/rpc/message/get_lake_snapshot.rs     |   50 +
 .../src/rpc/message/get_latest_kv_snapshots.rs     |   49 +
 .../src/rpc/message/get_latest_lake_snapshot.rs    |   55 +
 .../fluss/src/rpc/message/get_producer_offsets.rs  |   46 +
 .../fluss/src/rpc/message/get_security_token.rs    |   51 +
 .../crates/fluss/src/rpc/message/get_table.rs      |   54 +
 .../fluss/src/rpc/message/get_table_schema.rs      |   55 +
 .../fluss/src/rpc/message/get_table_stats.rs       |   53 +
 fluss-rust/crates/fluss/src/rpc/message/header.rs  |   82 +
 .../crates/fluss/src/rpc/message/init_writer.rs    |   47 +
 .../crates/fluss/src/rpc/message/limit_scan.rs     |   60 +
 .../crates/fluss/src/rpc/message/list_acls.rs      |   47 +
 .../src/rpc/message/list_database_summaries.rs     |   45 +
 .../crates/fluss/src/rpc/message/list_databases.rs |   49 +
 .../fluss/src/rpc/message/list_kv_snapshots.rs     |   47 +
 .../crates/fluss/src/rpc/message/list_offsets.rs   |  152 +
 .../fluss/src/rpc/message/list_partition_infos.rs  |   60 +
 .../src/rpc/message/list_rebalance_progress.rs     |   46 +
 .../src/rpc/message/list_remote_log_manifests.rs   |   47 +
 .../crates/fluss/src/rpc/message/list_tables.rs    |   52 +
 fluss-rust/crates/fluss/src/rpc/message/lookup.rs  |   71 +
 fluss-rust/crates/fluss/src/rpc/message/mod.rs     |  187 +
 .../crates/fluss/src/rpc/message/prefix_lookup.rs  |   68 +
 .../crates/fluss/src/rpc/message/produce_log.rs    |   68 +
 fluss-rust/crates/fluss/src/rpc/message/put_kv.rs  |   70 +
 .../crates/fluss/src/rpc/message/rebalance.rs      |   47 +
 .../src/rpc/message/register_producer_offsets.rs   |   56 +
 .../src/rpc/message/release_kv_snapshot_lease.rs   |   48 +
 .../fluss/src/rpc/message/remove_server_tag.rs     |   48 +
 fluss-rust/crates/fluss/src/rpc/message/scan_kv.rs |   57 +
 .../crates/fluss/src/rpc/message/table_exists.rs   |   53 +
 .../fluss/src/rpc/message/update_metadata.rs       |   71 +
 fluss-rust/crates/fluss/src/rpc/mod.rs             |   32 +
 .../crates/fluss/src/rpc/server_connection.rs      | 1316 ++++++
 fluss-rust/crates/fluss/src/rpc/transport.rs       |   83 +
 fluss-rust/crates/fluss/src/test_utils.rs          |  180 +
 fluss-rust/crates/fluss/src/util/mod.rs            |  239 +
 fluss-rust/crates/fluss/src/util/murmur_hash.rs    |  222 +
 fluss-rust/crates/fluss/src/util/partition.rs      |  532 +++
 fluss-rust/crates/fluss/src/util/varint.rs         |  498 ++
 fluss-rust/crates/fluss/tests/integration/admin.rs |  601 +++
 .../fluss/tests/integration/batch_scanner.rs       |  423 ++
 .../fluss/tests/integration/fluss_cluster.rs       |   18 +
 .../crates/fluss/tests/integration/kv_changelog.rs |  170 +
 .../crates/fluss/tests/integration/kv_table.rs     | 2050 +++++++++
 .../crates/fluss/tests/integration/log_table.rs    | 1952 ++++++++
 .../tests/integration/record_batch_log_reader.rs   |  524 +++
 .../crates/fluss/tests/integration/sasl_auth.rs    |  147 +
 .../fluss/tests/integration/table_remote_scan.rs   |  124 +
 fluss-rust/crates/fluss/tests/integration/utils.rs |  499 ++
 fluss-rust/crates/fluss/tests/test_fluss.rs        |   35 +
 fluss-rust/deny.toml                               |   36 +
 fluss-rust/docs/cpp-bazel-usage.md                 |  291 ++
 fluss-rust/docs/cpp-cmake-usage.md                 |  129 +
 fluss-rust/justfile                                |   28 +
 fluss-rust/rust-toolchain.toml                     |   20 +
 fluss-rust/rustfmt.toml                            |   19 +
 fluss-rust/scripts/bump-version.sh                 |   54 +
 fluss-rust/scripts/constants.py                    |   45 +
 fluss-rust/scripts/dependencies.py                 |   96 +
 fluss-rust/scripts/release.sh                      |   67 +
 fluss-rust/scripts/vendor-proto.sh                 |   46 +
 fluss-rust/website/babel.config.js                 |    3 +
 .../website/docs/developer-guide/contributing.md   |  132 +
 fluss-rust/website/docs/index.md                   |   45 +
 fluss-rust/website/docs/release/create-release.md  |  445 ++
 .../website/docs/release/generate-release-note.md  |   10 +
 .../docs/release/verifying-a-release-candidate.md  |  124 +
 fluss-rust/website/docs/user-guide/_category_.json |    4 +
 .../website/docs/user-guide/cpp/_category_.json    |    4 +
 .../website/docs/user-guide/cpp/api-reference.md   |  794 ++++
 .../website/docs/user-guide/cpp/data-types.md      |  332 ++
 .../website/docs/user-guide/cpp/error-handling.md  |  238 +
 .../docs/user-guide/cpp/example/_category_.json    |    4 +
 .../user-guide/cpp/example/admin-operations.md     |  158 +
 .../docs/user-guide/cpp/example/configuration.md   |   42 +
 .../website/docs/user-guide/cpp/example/index.md   |   63 +
 .../docs/user-guide/cpp/example/log-tables.md      |  181 +
 .../user-guide/cpp/example/partitioned-tables.md   |  179 +
 .../docs/user-guide/cpp/example/prefix-lookup.md   |  109 +
 .../user-guide/cpp/example/primary-key-tables.md   |  179 +
 .../website/docs/user-guide/cpp/installation.md    |  107 +
 .../website/docs/user-guide/python/_category_.json |    4 +
 .../docs/user-guide/python/api-reference.md        |  405 ++
 .../website/docs/user-guide/python/data-types.md   |  181 +
 .../docs/user-guide/python/error-handling.md       |  168 +
 .../docs/user-guide/python/example/_category_.json |    4 +
 .../user-guide/python/example/admin-operations.md  |   81 +
 .../user-guide/python/example/configuration.md     |   49 +
 .../docs/user-guide/python/example/index.md        |   46 +
 .../docs/user-guide/python/example/log-tables.md   |  143 +
 .../python/example/partitioned-tables.md           |  104 +
 .../python/example/primary-key-tables.md           |   95 +
 .../website/docs/user-guide/python/installation.md |   41 +
 .../website/docs/user-guide/rust/_category_.json   |    4 +
 .../website/docs/user-guide/rust/api-reference.md  |  651 +++
 .../website/docs/user-guide/rust/data-types.md     |  179 +
 .../website/docs/user-guide/rust/error-handling.md |  241 +
 .../docs/user-guide/rust/example/_category_.json   |    4 +
 .../user-guide/rust/example/admin-operations.md    |  122 +
 .../docs/user-guide/rust/example/configuration.md  |   35 +
 .../website/docs/user-guide/rust/example/index.md  |   56 +
 .../docs/user-guide/rust/example/log-tables.md     |  172 +
 .../user-guide/rust/example/partitioned-tables.md  |  219 +
 .../docs/user-guide/rust/example/prefix-lookup.md  |  110 +
 .../user-guide/rust/example/primary-key-tables.md  |  183 +
 .../website/docs/user-guide/rust/installation.md   |   76 +
 fluss-rust/website/docs/user-guide/rust/metrics.md |  179 +
 fluss-rust/website/docusaurus.config.ts            |  103 +
 fluss-rust/website/package.json                    |   48 +
 fluss-rust/website/sidebars.ts                     |   25 +
 fluss-rust/website/src/css/custom.css              |  209 +
 fluss-rust/website/static/CNAME                    |    1 +
 .../website}/static/img/logo/fluss_favicon.svg     |    0
 .../website}/static/img/logo/png/colored_logo.png  |  Bin
 .../website}/static/img/logo/svg/colored_logo.svg  |    0
 .../website/static/img}/release-guide.png          |  Bin
 fluss-rust/website/static/manifest.json            |   17 +
 fluss-rust/website/tsconfig.json                   |    6 +
 pom.xml                                            |    2 +
 website/community/dev/building.md                  |   38 +-
 website/community/dev/ide-setup.md                 |    9 +
 .../community/how-to-contribute/contribute-code.md |    3 +-
 .../how-to-release/creating-a-fluss-release.mdx    |   25 +
 .../community/how-to-release/pre-rc-checklist.md   |   38 +
 .../how-to-release/release-manager-preparation.md  |   22 +
 .../how-to-release/verifying-a-fluss-release.md    |   32 +
 website/docs/apis/client-support-matrix.md         |   16 +-
 website/docs/apis/cpp-client.md                    |   70 -
 website/docs/apis/cpp/_category_.json              |    4 +
 website/docs/apis/cpp/api-reference.md             |  794 ++++
 website/docs/apis/cpp/data-types.md                |  332 ++
 website/docs/apis/cpp/error-handling.md            |  238 +
 website/docs/apis/cpp/example/_category_.json      |    4 +
 website/docs/apis/cpp/example/admin-operations.md  |  158 +
 website/docs/apis/cpp/example/configuration.md     |   42 +
 website/docs/apis/cpp/example/index.md             |   63 +
 website/docs/apis/cpp/example/log-tables.md        |  181 +
 .../docs/apis/cpp/example/partitioned-tables.md    |  179 +
 website/docs/apis/cpp/example/prefix-lookup.md     |  109 +
 .../docs/apis/cpp/example/primary-key-tables.md    |  179 +
 website/docs/apis/cpp/installation.md              |  107 +
 website/docs/apis/index.md                         |   42 +
 website/docs/apis/java/_category_.json             |    4 +
 .../docs/apis/{java-client.md => java/index.md}    |    0
 website/docs/apis/python-client.md                 |   45 -
 website/docs/apis/python/_category_.json           |    4 +
 website/docs/apis/python/api-reference.md          |  405 ++
 website/docs/apis/python/data-types.md             |  181 +
 website/docs/apis/python/error-handling.md         |  168 +
 website/docs/apis/python/example/_category_.json   |    4 +
 .../docs/apis/python/example/admin-operations.md   |   81 +
 website/docs/apis/python/example/configuration.md  |   49 +
 website/docs/apis/python/example/index.md          |   46 +
 website/docs/apis/python/example/log-tables.md     |  143 +
 .../docs/apis/python/example/partitioned-tables.md |  104 +
 .../docs/apis/python/example/primary-key-tables.md |   95 +
 website/docs/apis/python/installation.md           |   41 +
 website/docs/apis/rust-client.md                   |   53 -
 website/docs/apis/rust/_category_.json             |    4 +
 website/docs/apis/rust/api-reference.md            |  651 +++
 website/docs/apis/rust/data-types.md               |  179 +
 website/docs/apis/rust/error-handling.md           |  241 +
 website/docs/apis/rust/example/_category_.json     |    4 +
 website/docs/apis/rust/example/admin-operations.md |  122 +
 website/docs/apis/rust/example/configuration.md    |   35 +
 website/docs/apis/rust/example/index.md            |   56 +
 website/docs/apis/rust/example/log-tables.md       |  172 +
 .../docs/apis/rust/example/partitioned-tables.md   |  219 +
 website/docs/apis/rust/example/prefix-lookup.md    |  110 +
 .../docs/apis/rust/example/primary-key-tables.md   |  183 +
 website/docs/apis/rust/installation.md             |   76 +
 website/docs/apis/rust/metrics.md                  |  179 +
 .../docs/table-design/merge-engines/aggregation.md |    2 +-
 website/docusaurus.config.ts                       |    2 +-
 475 files changed, 123364 insertions(+), 216 deletions(-)
 create mode 100644 .github/actions/verify-tag-version/action.yml
 create mode 100644 .github/dependabot.yml
 create mode 100644 .github/release.yml
 create mode 100644 .github/workflows/client-integration.yml
 create mode 100644 .github/workflows/python-release.yml
 create mode 100644 .github/workflows/rust-build-and-test.yml
 copy .github/workflows/{ci.yaml => rust-docs-check.yml} (56%)
 create mode 100644 .github/workflows/rust-license-and-format.yml
 create mode 100644 .github/workflows/rust-release.yml
 create mode 100644 fluss-rust/.cargo/config.toml
 create mode 100644 fluss-rust/.gitignore
 create mode 100644 fluss-rust/.licenserc.yaml
 create mode 100644 fluss-rust/Cargo.lock
 create mode 100644 fluss-rust/Cargo.toml
 create mode 100644 fluss-rust/DEPENDENCIES.rust.tsv
 create mode 100644 fluss-rust/DEVELOPMENT.md
 create mode 100644 fluss-rust/MODULE.bazel
 create mode 100644 fluss-rust/README.md
 create mode 100644 fluss-rust/bindings/cpp/.bazelrc
 create mode 100644 fluss-rust/bindings/cpp/.clang-format
 create mode 100644 fluss-rust/bindings/cpp/.gitignore
 create mode 100644 fluss-rust/bindings/cpp/BUILD.bazel
 create mode 100644 fluss-rust/bindings/cpp/CMakeLists.txt
 create mode 100644 fluss-rust/bindings/cpp/Cargo.toml
 create mode 100644 fluss-rust/bindings/cpp/DEPENDENCIES.rust.tsv
 create mode 100644 fluss-rust/bindings/cpp/README.md
 create mode 100644 fluss-rust/bindings/cpp/bazel/cpp/BUILD.bazel
 create mode 100644 fluss-rust/bindings/cpp/bazel/cpp/deps.bzl
 create mode 100644 fluss-rust/bindings/cpp/build.rs
 create mode 100755 fluss-rust/bindings/cpp/ci.sh
 create mode 100644 fluss-rust/bindings/cpp/examples/admin_example.cpp
 create mode 100644 
fluss-rust/bindings/cpp/examples/bazel-consumer/build/BUILD.bazel
 create mode 100644 
fluss-rust/bindings/cpp/examples/bazel-consumer/build/MODULE.bazel
 create mode 100644 
fluss-rust/bindings/cpp/examples/bazel-consumer/build/main.cc
 create mode 100644 
fluss-rust/bindings/cpp/examples/bazel-consumer/system/BUILD.bazel
 create mode 100644 
fluss-rust/bindings/cpp/examples/bazel-consumer/system/MODULE.bazel
 create mode 100644 
fluss-rust/bindings/cpp/examples/bazel-consumer/system/main.cc
 create mode 100644 fluss-rust/bindings/cpp/examples/example.cpp
 create mode 100644 fluss-rust/bindings/cpp/examples/kv_changelog_example.cpp
 create mode 100644 fluss-rust/bindings/cpp/examples/kv_example.cpp
 create mode 100644 fluss-rust/bindings/cpp/include/fluss.hpp
 create mode 100755 fluss-rust/bindings/cpp/scripts/ensure_protoc.sh
 create mode 100644 fluss-rust/bindings/cpp/src/admin.cpp
 create mode 100644 fluss-rust/bindings/cpp/src/connection.cpp
 create mode 100644 fluss-rust/bindings/cpp/src/ffi_converter.hpp
 create mode 100644 fluss-rust/bindings/cpp/src/lib.rs
 create mode 100644 fluss-rust/bindings/cpp/src/table.cpp
 create mode 100644 fluss-rust/bindings/cpp/src/type_lowering.hpp
 create mode 100644 fluss-rust/bindings/cpp/src/types.rs
 create mode 100644 fluss-rust/bindings/cpp/test/test_admin.cpp
 create mode 100644 fluss-rust/bindings/cpp/test/test_ffi_converter.cpp
 create mode 100644 fluss-rust/bindings/cpp/test/test_kv_changelog.cpp
 create mode 100644 fluss-rust/bindings/cpp/test/test_kv_table.cpp
 create mode 100644 fluss-rust/bindings/cpp/test/test_log_table.cpp
 create mode 100644 fluss-rust/bindings/cpp/test/test_main.cpp
 create mode 100644 fluss-rust/bindings/cpp/test/test_sasl_auth.cpp
 create mode 100644 fluss-rust/bindings/cpp/test/test_utils.h
 create mode 100644 fluss-rust/bindings/elixir/.formatter.exs
 create mode 100644 fluss-rust/bindings/elixir/.gitignore
 create mode 100644 fluss-rust/bindings/elixir/README.md
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/admin.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/append_writer.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/config.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/connection.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/database_descriptor.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/database_info.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/error.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/log_scanner.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/native.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/schema.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/schema_info.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/server_node.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/table.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/table_descriptor.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/table_info.ex
 create mode 100644 fluss-rust/bindings/elixir/lib/fluss/write_handle.ex
 create mode 100644 fluss-rust/bindings/elixir/mix.exs
 create mode 100644 fluss-rust/bindings/elixir/mix.lock
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/Cargo.toml
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/src/admin.rs
 create mode 100644 
fluss-rust/bindings/elixir/native/fluss_nif/src/append_writer.rs
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/src/async_nif.rs
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/src/atoms.rs
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/src/config.rs
 create mode 100644 
fluss-rust/bindings/elixir/native/fluss_nif/src/connection.rs
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/src/lib.rs
 create mode 100644 
fluss-rust/bindings/elixir/native/fluss_nif/src/log_scanner.rs
 create mode 100644 
fluss-rust/bindings/elixir/native/fluss_nif/src/row_convert.rs
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/src/schema.rs
 create mode 100644 fluss-rust/bindings/elixir/native/fluss_nif/src/table.rs
 create mode 100644 
fluss-rust/bindings/elixir/native/fluss_nif/src/write_handle.rs
 create mode 100644 fluss-rust/bindings/elixir/test/config_test.exs
 create mode 100644 fluss-rust/bindings/elixir/test/database_descriptor_test.exs
 create mode 100644 fluss-rust/bindings/elixir/test/error_test.exs
 create mode 100644 fluss-rust/bindings/elixir/test/fluss_test.exs
 create mode 100644 fluss-rust/bindings/elixir/test/integration/admin_test.exs
 create mode 100644 
fluss-rust/bindings/elixir/test/integration/log_table_test.exs
 create mode 100644 fluss-rust/bindings/elixir/test/support/cluster.ex
 create mode 100644 fluss-rust/bindings/elixir/test/support/integration_case.ex
 create mode 100644 fluss-rust/bindings/elixir/test/table_descriptor_test.exs
 create mode 100644 fluss-rust/bindings/elixir/test/test_helper.exs
 create mode 100644 fluss-rust/bindings/python/Cargo.toml
 create mode 100644 fluss-rust/bindings/python/DEPENDENCIES.rust.tsv
 create mode 100644 fluss-rust/bindings/python/DEVELOPMENT.md
 create mode 100644 fluss-rust/bindings/python/PYPI_README.md
 create mode 100644 fluss-rust/bindings/python/README.md
 create mode 100644 fluss-rust/bindings/python/example/complex_types.py
 create mode 100644 fluss-rust/bindings/python/example/kv_changelog.py
 create mode 100644 fluss-rust/bindings/python/example/log_table.py
 create mode 100644 fluss-rust/bindings/python/example/partitioned_kv_table.py
 create mode 100644 fluss-rust/bindings/python/example/partitioned_table.py
 create mode 100644 fluss-rust/bindings/python/example/pk_table.py
 create mode 100644 fluss-rust/bindings/python/fluss/__init__.py
 create mode 100644 fluss-rust/bindings/python/fluss/__init__.pyi
 copy website/static/.nojekyll => fluss-rust/bindings/python/fluss/py.typed 
(100%)
 create mode 100644 fluss-rust/bindings/python/pyproject.toml
 create mode 100644 fluss-rust/bindings/python/src/admin.rs
 create mode 100644 fluss-rust/bindings/python/src/config.rs
 create mode 100644 fluss-rust/bindings/python/src/connection.rs
 create mode 100644 fluss-rust/bindings/python/src/error.rs
 create mode 100644 fluss-rust/bindings/python/src/lib.rs
 create mode 100644 fluss-rust/bindings/python/src/lookup.rs
 create mode 100644 fluss-rust/bindings/python/src/metadata.rs
 create mode 100644 fluss-rust/bindings/python/src/table.rs
 create mode 100644 fluss-rust/bindings/python/src/upsert.rs
 create mode 100644 fluss-rust/bindings/python/src/utils.rs
 create mode 100644 fluss-rust/bindings/python/src/write_handle.rs
 create mode 100644 fluss-rust/bindings/python/stubtest-allowlist.txt
 create mode 100644 fluss-rust/bindings/python/test/conftest.py
 create mode 100644 fluss-rust/bindings/python/test/test_admin.py
 create mode 100644 fluss-rust/bindings/python/test/test_batch_scanner.py
 create mode 100644 fluss-rust/bindings/python/test/test_context_manager.py
 create mode 100644 fluss-rust/bindings/python/test/test_examples.py
 create mode 100644 fluss-rust/bindings/python/test/test_kv_changelog.py
 create mode 100644 fluss-rust/bindings/python/test/test_kv_table.py
 create mode 100644 fluss-rust/bindings/python/test/test_log_table.py
 create mode 100644 fluss-rust/bindings/python/test/test_sasl_auth.py
 create mode 100644 fluss-rust/bindings/python/test/test_schema.py
 create mode 100644 fluss-rust/copyright.txt
 create mode 100644 fluss-rust/crates/examples/Cargo.toml
 create mode 100644 fluss-rust/crates/examples/DEPENDENCIES.rust.tsv
 create mode 100644 fluss-rust/crates/examples/src/example_kv_changelog.rs
 create mode 100644 fluss-rust/crates/examples/src/example_kv_table.rs
 create mode 100644 
fluss-rust/crates/examples/src/example_partitioned_kv_table.rs
 create mode 100644 
fluss-rust/crates/examples/src/example_partitioned_prefix_lookup.rs
 create mode 100644 fluss-rust/crates/examples/src/example_prefix_lookup.rs
 create mode 100644 fluss-rust/crates/examples/src/example_prometheus_metrics.rs
 create mode 100644 fluss-rust/crates/examples/src/example_table.rs
 create mode 100644 fluss-rust/crates/fluss-test-cluster/Cargo.toml
 create mode 100644 fluss-rust/crates/fluss-test-cluster/build.rs
 create mode 100644 fluss-rust/crates/fluss-test-cluster/src/lib.rs
 create mode 100644 fluss-rust/crates/fluss-test-cluster/src/main.rs
 create mode 100644 fluss-rust/crates/fluss-test-cluster/test-images.env
 create mode 100644 fluss-rust/crates/fluss/Cargo.toml
 create mode 100644 fluss-rust/crates/fluss/DEPENDENCIES.rust.tsv
 create mode 100644 fluss-rust/crates/fluss/README.md
 create mode 100644 fluss-rust/crates/fluss/build.rs
 create mode 100644 fluss-rust/crates/fluss/src/bucketing/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/admin.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/connection.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/credentials.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/lookup/lookup_client.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/lookup/lookup_query.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/lookup/lookup_queue.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/lookup/lookup_sender.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/lookup/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/metadata.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/schema_getter.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/append.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/batch_scanner.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/log_fetch_buffer.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/lookup.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/partition_getter.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/reader.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/remote_log.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/scanner.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/table/upsert.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/accumulator.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/batch.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/broadcast.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/bucket_assigner.rs
 create mode 100644 
fluss-rust/crates/fluss/src/client/write/dynamic_batch_size.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/idempotence.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/sender.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/write_format.rs
 create mode 100644 fluss-rust/crates/fluss/src/client/write/writer_client.rs
 create mode 100644 fluss-rust/crates/fluss/src/cluster/cluster.rs
 create mode 100644 fluss-rust/crates/fluss/src/cluster/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/compression/arrow_compression.rs
 create mode 100644 
fluss-rust/crates/fluss/src/compression/arrow_compression_ratio_estimator.rs
 create mode 100644 fluss-rust/crates/fluss/src/compression/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/config.rs
 create mode 100644 fluss-rust/crates/fluss/src/error.rs
 create mode 100644 fluss-rust/crates/fluss/src/io/file_io.rs
 create mode 100644 fluss-rust/crates/fluss/src/io/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/io/storage.rs
 create mode 100644 fluss-rust/crates/fluss/src/io/storage_fs.rs
 create mode 100644 fluss-rust/crates/fluss/src/io/storage_memory.rs
 create mode 100644 fluss-rust/crates/fluss/src/io/storage_oss.rs
 create mode 100644 fluss-rust/crates/fluss/src/io/storage_s3.rs
 create mode 100644 fluss-rust/crates/fluss/src/lib.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/acl.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/cluster_health.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/config.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/data_lake_format.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/database.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/datatype.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/goal_type.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/json_serde.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/kv_snapshot.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/kv_snapshot_lease.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/lake_snapshot.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/partition.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/producer_offsets.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/rebalance.rs
 create mode 100644 
fluss-rust/crates/fluss/src/metadata/register_producer_result.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/remote_log.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/schema_util.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/server_tag.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/table.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/table_change.rs
 create mode 100644 fluss-rust/crates/fluss/src/metadata/table_stats.rs
 create mode 100644 fluss-rust/crates/fluss/src/metrics.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/arrow.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/error.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/kv/kv_record.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/kv/kv_record_batch.rs
 create mode 100644 
fluss-rust/crates/fluss/src/record/kv/kv_record_batch_builder.rs
 create mode 100644 
fluss-rust/crates/fluss/src/record/kv/kv_record_read_context.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/kv/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/kv/read_context.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/kv/test_util.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/kv/value_record_batch.rs
 create mode 100644 fluss-rust/crates/fluss/src/record/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/binary/binary_writer.rs
 create mode 100644 
fluss-rust/crates/fluss/src/row/binary/iceberg_binary_row_writer.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/binary/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/binary_array.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/binary_map.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/column.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/column_vector.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/column_writer.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/columnar.rs
 create mode 100644 
fluss-rust/crates/fluss/src/row/compacted/compacted_key_writer.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/compacted/compacted_row.rs
 create mode 100644 
fluss-rust/crates/fluss/src/row/compacted/compacted_row_reader.rs
 create mode 100644 
fluss-rust/crates/fluss/src/row/compacted/compacted_row_writer.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/compacted/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/datum.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/decimal.rs
 create mode 100644 
fluss-rust/crates/fluss/src/row/encode/compacted_key_encoder.rs
 create mode 100644 
fluss-rust/crates/fluss/src/row/encode/compacted_row_encoder.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/encode/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/encode/paimon_key_encoder.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/field_getter.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/fixed_schema_decoder.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/lookup_row.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/paimon/mod.rs
 create mode 100644 
fluss-rust/crates/fluss/src/row/paimon/paimon_binary_row_writer.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/projected_row.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/row_decoder.rs
 create mode 100644 fluss-rust/crates/fluss/src/row/view.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/api_key.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/api_version.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/convert.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/error.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/fluss_api_error.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/frame.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/acquire_kv_snapshot_lease.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/add_server_tag.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/alter_cluster_configs.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/alter_database.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/alter_table.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/api_versions.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/authenticate.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/cancel_rebalance.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/create_acls.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/create_database.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/create_partition.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/create_table.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/database_exists.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/delete_producer_offsets.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/describe_cluster_configs.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/drop_acls.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/drop_database.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/drop_kv_snapshot_lease.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/drop_partition.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/drop_table.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/fetch.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/get_cluster_health.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/get_database_info.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/get_kv_snapshot_metadata.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/get_lake_snapshot.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/get_latest_kv_snapshots.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/get_latest_lake_snapshot.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/get_producer_offsets.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/get_security_token.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/get_table.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/get_table_schema.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/get_table_stats.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/header.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/init_writer.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/limit_scan.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/list_acls.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/list_database_summaries.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/list_databases.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/list_kv_snapshots.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/list_offsets.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/list_partition_infos.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/list_rebalance_progress.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/list_remote_log_manifests.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/list_tables.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/lookup.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/prefix_lookup.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/produce_log.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/put_kv.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/rebalance.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/register_producer_offsets.rs
 create mode 100644 
fluss-rust/crates/fluss/src/rpc/message/release_kv_snapshot_lease.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/remove_server_tag.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/scan_kv.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/table_exists.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/message/update_metadata.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/server_connection.rs
 create mode 100644 fluss-rust/crates/fluss/src/rpc/transport.rs
 create mode 100644 fluss-rust/crates/fluss/src/test_utils.rs
 create mode 100644 fluss-rust/crates/fluss/src/util/mod.rs
 create mode 100644 fluss-rust/crates/fluss/src/util/murmur_hash.rs
 create mode 100644 fluss-rust/crates/fluss/src/util/partition.rs
 create mode 100644 fluss-rust/crates/fluss/src/util/varint.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/admin.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/batch_scanner.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/fluss_cluster.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/kv_changelog.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/kv_table.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/log_table.rs
 create mode 100644 
fluss-rust/crates/fluss/tests/integration/record_batch_log_reader.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/sasl_auth.rs
 create mode 100644 
fluss-rust/crates/fluss/tests/integration/table_remote_scan.rs
 create mode 100644 fluss-rust/crates/fluss/tests/integration/utils.rs
 create mode 100644 fluss-rust/crates/fluss/tests/test_fluss.rs
 create mode 100644 fluss-rust/deny.toml
 create mode 100644 fluss-rust/docs/cpp-bazel-usage.md
 create mode 100644 fluss-rust/docs/cpp-cmake-usage.md
 create mode 100644 fluss-rust/justfile
 create mode 100644 fluss-rust/rust-toolchain.toml
 create mode 100644 fluss-rust/rustfmt.toml
 create mode 100755 fluss-rust/scripts/bump-version.sh
 create mode 100644 fluss-rust/scripts/constants.py
 create mode 100644 fluss-rust/scripts/dependencies.py
 create mode 100755 fluss-rust/scripts/release.sh
 create mode 100755 fluss-rust/scripts/vendor-proto.sh
 create mode 100644 fluss-rust/website/babel.config.js
 create mode 100644 fluss-rust/website/docs/developer-guide/contributing.md
 create mode 100644 fluss-rust/website/docs/index.md
 create mode 100644 fluss-rust/website/docs/release/create-release.md
 create mode 100644 fluss-rust/website/docs/release/generate-release-note.md
 create mode 100644 
fluss-rust/website/docs/release/verifying-a-release-candidate.md
 create mode 100644 fluss-rust/website/docs/user-guide/_category_.json
 create mode 100644 fluss-rust/website/docs/user-guide/cpp/_category_.json
 create mode 100644 fluss-rust/website/docs/user-guide/cpp/api-reference.md
 create mode 100644 fluss-rust/website/docs/user-guide/cpp/data-types.md
 create mode 100644 fluss-rust/website/docs/user-guide/cpp/error-handling.md
 create mode 100644 
fluss-rust/website/docs/user-guide/cpp/example/_category_.json
 create mode 100644 
fluss-rust/website/docs/user-guide/cpp/example/admin-operations.md
 create mode 100644 
fluss-rust/website/docs/user-guide/cpp/example/configuration.md
 create mode 100644 fluss-rust/website/docs/user-guide/cpp/example/index.md
 create mode 100644 fluss-rust/website/docs/user-guide/cpp/example/log-tables.md
 create mode 100644 
fluss-rust/website/docs/user-guide/cpp/example/partitioned-tables.md
 create mode 100644 
fluss-rust/website/docs/user-guide/cpp/example/prefix-lookup.md
 create mode 100644 
fluss-rust/website/docs/user-guide/cpp/example/primary-key-tables.md
 create mode 100644 fluss-rust/website/docs/user-guide/cpp/installation.md
 create mode 100644 fluss-rust/website/docs/user-guide/python/_category_.json
 create mode 100644 fluss-rust/website/docs/user-guide/python/api-reference.md
 create mode 100644 fluss-rust/website/docs/user-guide/python/data-types.md
 create mode 100644 fluss-rust/website/docs/user-guide/python/error-handling.md
 create mode 100644 
fluss-rust/website/docs/user-guide/python/example/_category_.json
 create mode 100644 
fluss-rust/website/docs/user-guide/python/example/admin-operations.md
 create mode 100644 
fluss-rust/website/docs/user-guide/python/example/configuration.md
 create mode 100644 fluss-rust/website/docs/user-guide/python/example/index.md
 create mode 100644 
fluss-rust/website/docs/user-guide/python/example/log-tables.md
 create mode 100644 
fluss-rust/website/docs/user-guide/python/example/partitioned-tables.md
 create mode 100644 
fluss-rust/website/docs/user-guide/python/example/primary-key-tables.md
 create mode 100644 fluss-rust/website/docs/user-guide/python/installation.md
 create mode 100644 fluss-rust/website/docs/user-guide/rust/_category_.json
 create mode 100644 fluss-rust/website/docs/user-guide/rust/api-reference.md
 create mode 100644 fluss-rust/website/docs/user-guide/rust/data-types.md
 create mode 100644 fluss-rust/website/docs/user-guide/rust/error-handling.md
 create mode 100644 
fluss-rust/website/docs/user-guide/rust/example/_category_.json
 create mode 100644 
fluss-rust/website/docs/user-guide/rust/example/admin-operations.md
 create mode 100644 
fluss-rust/website/docs/user-guide/rust/example/configuration.md
 create mode 100644 fluss-rust/website/docs/user-guide/rust/example/index.md
 create mode 100644 
fluss-rust/website/docs/user-guide/rust/example/log-tables.md
 create mode 100644 
fluss-rust/website/docs/user-guide/rust/example/partitioned-tables.md
 create mode 100644 
fluss-rust/website/docs/user-guide/rust/example/prefix-lookup.md
 create mode 100644 
fluss-rust/website/docs/user-guide/rust/example/primary-key-tables.md
 create mode 100644 fluss-rust/website/docs/user-guide/rust/installation.md
 create mode 100644 fluss-rust/website/docs/user-guide/rust/metrics.md
 create mode 100644 fluss-rust/website/docusaurus.config.ts
 create mode 100644 fluss-rust/website/package.json
 create mode 100644 fluss-rust/website/sidebars.ts
 create mode 100644 fluss-rust/website/src/css/custom.css
 create mode 100644 fluss-rust/website/static/CNAME
 copy {website => fluss-rust/website}/static/img/logo/fluss_favicon.svg (100%)
 copy {website => fluss-rust/website}/static/img/logo/png/colored_logo.png 
(100%)
 copy {website => fluss-rust/website}/static/img/logo/svg/colored_logo.svg 
(100%)
 copy {website/community/assets => 
fluss-rust/website/static/img}/release-guide.png (100%)
 create mode 100644 fluss-rust/website/static/manifest.json
 create mode 100644 fluss-rust/website/tsconfig.json
 create mode 100644 website/community/how-to-release/pre-rc-checklist.md
 delete mode 100644 website/docs/apis/cpp-client.md
 create mode 100644 website/docs/apis/cpp/_category_.json
 create mode 100644 website/docs/apis/cpp/api-reference.md
 create mode 100644 website/docs/apis/cpp/data-types.md
 create mode 100644 website/docs/apis/cpp/error-handling.md
 create mode 100644 website/docs/apis/cpp/example/_category_.json
 create mode 100644 website/docs/apis/cpp/example/admin-operations.md
 create mode 100644 website/docs/apis/cpp/example/configuration.md
 create mode 100644 website/docs/apis/cpp/example/index.md
 create mode 100644 website/docs/apis/cpp/example/log-tables.md
 create mode 100644 website/docs/apis/cpp/example/partitioned-tables.md
 create mode 100644 website/docs/apis/cpp/example/prefix-lookup.md
 create mode 100644 website/docs/apis/cpp/example/primary-key-tables.md
 create mode 100644 website/docs/apis/cpp/installation.md
 create mode 100644 website/docs/apis/index.md
 create mode 100644 website/docs/apis/java/_category_.json
 rename website/docs/apis/{java-client.md => java/index.md} (100%)
 delete mode 100644 website/docs/apis/python-client.md
 create mode 100644 website/docs/apis/python/_category_.json
 create mode 100644 website/docs/apis/python/api-reference.md
 create mode 100644 website/docs/apis/python/data-types.md
 create mode 100644 website/docs/apis/python/error-handling.md
 create mode 100644 website/docs/apis/python/example/_category_.json
 create mode 100644 website/docs/apis/python/example/admin-operations.md
 create mode 100644 website/docs/apis/python/example/configuration.md
 create mode 100644 website/docs/apis/python/example/index.md
 create mode 100644 website/docs/apis/python/example/log-tables.md
 create mode 100644 website/docs/apis/python/example/partitioned-tables.md
 create mode 100644 website/docs/apis/python/example/primary-key-tables.md
 create mode 100644 website/docs/apis/python/installation.md
 delete mode 100644 website/docs/apis/rust-client.md
 create mode 100644 website/docs/apis/rust/_category_.json
 create mode 100644 website/docs/apis/rust/api-reference.md
 create mode 100644 website/docs/apis/rust/data-types.md
 create mode 100644 website/docs/apis/rust/error-handling.md
 create mode 100644 website/docs/apis/rust/example/_category_.json
 create mode 100644 website/docs/apis/rust/example/admin-operations.md
 create mode 100644 website/docs/apis/rust/example/configuration.md
 create mode 100644 website/docs/apis/rust/example/index.md
 create mode 100644 website/docs/apis/rust/example/log-tables.md
 create mode 100644 website/docs/apis/rust/example/partitioned-tables.md
 create mode 100644 website/docs/apis/rust/example/prefix-lookup.md
 create mode 100644 website/docs/apis/rust/example/primary-key-tables.md
 create mode 100644 website/docs/apis/rust/installation.md
 create mode 100644 website/docs/apis/rust/metrics.md

Reply via email to