Skip to main content

rbt/
lib.rs

1//! # rbt
2//!
3//! Medallion SQL DAG engine for lakehouse transforms (bronze → silver → gold).
4//!
5//! ## Install
6//!
7//! **CLI**
8//! ```bash
9//! cargo install rbt-datalake
10//! rbt --help
11//! ```
12//!
13//! **Library**
14//! ```toml
15//! [dependencies]
16//! rbt-datalake = "0.3.6"
17//! ```
18//!
19//! ## Quick start (library)
20//!
21//! ```rust,no_run
22//! use rbt::{RbtProjectConfig, TransformationEngine};
23//! # async fn demo() -> anyhow::Result<()> {
24//! let project = std::path::Path::new(".");
25//! let config = RbtProjectConfig::load(project)?;
26//! let dag = config.build_dag(project, None)?;
27//! let engine = TransformationEngine::new();
28//! let _summary = engine.execute_dag(&dag, project, "./target/output").await?;
29//! # Ok(())
30//! # }
31//! ```
32
33#![doc(html_root_url = "https://docs.rs/rbt-datalake/0.3.6")]
34
35pub mod core;
36pub mod engine;
37pub mod json;
38pub mod materializer;
39pub mod scan;
40pub mod testing;
41
42// --- Public API (stable surface for library users) ---------------------------
43
44pub use core::{
45    model_has_test_contract, parse_select_spec, resolve_scan_path, scan_path_exists,
46    BronzeCheckMode, BronzeDiagnostic, BronzeValidationReport, ColumnMeta, DependencyRef,
47    DiagnosticSeverity, Materialization, MaterializeConfig, ModelDag, ModelLayer, ModelNode,
48    ModelTests, OutputFormat, RbtProjectConfig, RbtTemplateEngine, RefBackend, RefStrategy,
49    SelectMode, SelectToken, SourceFormat, SqlModelParser, StagingFrontmatter,
50    DEFAULT_MEMTABLE_MAX_ROWS,
51};
52
53pub use engine::{
54    register_bronze_for_model, register_bronze_sources_for_dag, BronzeRegistrationMode,
55    BronzeSourceMeta, BronzeTableProvider, DagExecutionSummary, RbtEngineBuilder,
56    TransformationEngine,
57};
58
59pub use materializer::{
60    sibling_iceberg_dir, write_iceberg_fs_table, MultiFormatWriter, WapMaterializer, WapStatus,
61};
62
63pub use json::{JShiftExtractor, JsonExtractSpec};
64pub use scan::{parse_hive_partitions, LakeScanner, ScanRequest};
65
66pub use testing::{assertions_from_model_tests, Assertion, RecordBatchValidator, ValidationResult};
67
68/// Package version string.
69pub const VERSION: &str = env!("CARGO_PKG_VERSION");