Version notes
Rhei is currently v1.5.0. Releases are tracked on GitHub Releases.
Versioning policy
Rhei follows Semantic Versioning for the public API:
- MAJOR — breaking changes to
HtapEngine,HtapConfig,CdcSource,SidecarConfig, the trait surface inrhei-core, or the on-disk SQLite schema (_rhei_cdc_loglayout, reserved column names). - MINOR — new features, new optional config fields with backwards-compatible defaults, new feature flags.
- PATCH — bug fixes, performance improvements, dependency bumps, doc additions.
The rh CLI follows the same versioning. The TOML config schema is forward-compatible within a MAJOR version — unknown keys are ignored, missing optional keys fall back to defaults.
Pinned dependencies
Some upstream versions are pinned to keep the Arrow ABI consistent across backends:
- Arrow —
58(must matchduckdb 1.10501,datafusion 53, andconnector_arrow 0.11) - Rust toolchain — stable, minimum
1.95 - PyO3 —
0.28for the Python bindings - arrow-flight —
58for the FlightSQL server
Bumping any of these requires updating all together — they share an internal Arrow type lattice.
Recent highlights
| Version | Notes |
|---|---|
| 1.5.0 | Project rename Yoda → Rhei across all crates, CLI binary (yd → rh), Python package, on-disk schema (_yoda_* → _rhei_*), and docs. New brand identity and palette. No API surface changes — drop-in once names are updated. |
| 1.4.0 | S3 / GCS object-store backends for DataFusion Parquet; sidecar watermark hardening; typed Arrow-batch bulk INSERT (~5.8× throughput restoration); RocksDB-backed CDC log (rocksdb-cdc); Arrow Flight SQL server (flight-sql); Python async bindings; live TUI dashboard. |
| 1.3.x | Observability — Prometheus metrics endpoint, structured JSON logs. |
| 1.2.x | Pluggable storage modes for DataFusion (InMemory / ArrowIpc / Parquet). |
| 1.1.x | Sidecar mode (timestamp-based CDC for SQLite + PostgreSQL sources). |
| 1.0.x | Initial public release: HTAP facade, trigger-based CDC, OLAP routing, temporal SCD-2 mode. |
For the full per-PR history, see the GitHub release page or git log --oneline main.
Upgrading
From 1.4.x (Yoda) to 1.5.x (Rhei)
The 1.5 release renames the project from Yoda to Rhei. The API surface is unchanged, but every public name moves:
- Cargo dependency:
yoda = "1.4"→rhei = "1.5". All sub-crates likewise:yoda-core→rhei-core, etc. - Rust imports:
use yoda::…→use rhei::…,use yoda_core::…→use rhei_core::…. - CLI binary:
yd→rh(e.g.yd serve→rh serve). All subcommands and flags are unchanged. - Python package:
pip install yoda→pip install rhei;import yoda→import rhei. - Env vars:
YODA_TEST_E2E,YODA_TEST_POSTGRES,YODA_FLIGHT_AUTH_TOKEN→RHEI_*. - On-disk schema: the CDC log table
_yoda_cdc_logand SCD-2 columns_yoda_valid_from/_yoda_valid_to/_yoda_operationare renamed to_rhei_*. Existing databases need a one-timeALTER TABLE … RENAME TO(or start fresh).
HtapEngine, HtapConfig, CdcSource, SidecarConfig, the trait surface, and TOML keys are unchanged.
From 1.3.x to 1.4.x
- No breaking changes to
HtapConfigor the trait surface. - New optional config fields (
flight_port,flight_auth_token,metrics_port,rocksdb_cdc_path) are all behind feature flags or have safe defaults.
General upgrade procedure
# Update Cargo.toml dependency:
rhei = "1.5"
# Verify with cargo check:
cargo check --workspace --all-features
# Run the test suite:
cargo test --workspace --all-featuresIf you store schema-registry state (schema_registry_path) on disk, the JSON format is forward-compatible — older registries load cleanly under newer Rhei versions.
Stability tiers
Not all crates carry the same stability promise:
| Crate | Stability | Notes |
|---|---|---|
rhei | Stable | Public-facing facade; semver-tracked. |
rhei-core | Stable | Shared traits and types. |
rhei-sync | Stable | CdcSyncEngine, SqlParserRouter. |
rhei-olap, rhei-duckdb, rhei-datafusion | Stable | Implementation backends. |
rhei-oltp-rusqlite | Stable | Default OLTP backend. |
rhei-tokio-rusqlite | Stable | Standalone (no Rhei-specific dependencies). |
rhei-sidecar | Stable | Sidecar mode. |
rhei-cdc-rocksdb | Experimental | Feature rocksdb-cdc; API may change in a 1.x release. |
rhei-flight | Experimental | Feature flight-sql; the gRPC schema may evolve. |
Experimental crates won't be removed without a deprecation cycle, but their public API may shift in a minor release if Arrow Flight SQL upstream changes or a better RocksDB schema emerges.
