Skip to main content

Crate rivet

Crate rivet 

Source
Expand description

Rivet — CLI tool to export PostgreSQL and MySQL tables to Parquet/CSV files (local, S3, GCS) with tuning profiles, preflight diagnostics, chunked parallelism, retry logic, and SQLite-backed state tracking.

§Not a stable public API

This crate (rivet-cli on crates.io) is a CLI product, not an embeddable library. The library target exists solely to support Rust’s integration test harness (tests/ requires a library to link against). Internal modules may change at any patch release without notice. See docs/adr/0002-cli-product-vs-library.md for the full decision.

Stable for integration tests: config, format, pipeline, resource, state. All other modules are pub(crate) and not reachable from external consumers.

Modules§

config
error
Layer: Cross-cutting
format
journal
Layer: Observability
manifest
Layer: Trust contract
mcp
MCP (Model Context Protocol) server — read-only DB introspection tools.
pipeline
Layer: Coordinator (planning → execution → persistence/observability)
preflight
redact
Layer: Cross-cutting helper (credential redaction invariant, v0.7.2 P0.3)
resource
source
state
tuning
Tuning module — resolution of SourceTuning from YAML + adaptive helpers.
types
Rivet’s internal type system.

Macros§

config_bail
return Err-style bail with a stable RIVET_CONFIG_* code (exit class Generic). Drop-in for anyhow::bail! at a config-validation site — the message text is unchanged; only a typed code rides alongside it.