Skip to main content

faucet_lineage/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2//! OpenLineage event emission for faucet-stream pipelines.
3//!
4//! Emits OpenLineage `RunEvent`s (START/RUNNING/COMPLETE/ABORT/FAIL) for a
5//! pipeline run to an HTTP, file, or Kafka backend. Wired by the `faucet` CLI;
6//! the types here are also usable directly by library callers.
7//!
8//! OpenLineage spec version: **2.0.2** (see [`event::OL_SCHEMA_URL`]).
9
10pub mod column;
11pub mod config;
12pub mod emitter;
13pub mod event;
14pub mod lifecycle;
15pub mod sampling;
16pub mod transport;
17
18pub use column::{ColumnLineage, ColumnOp, derive as derive_column_lineage};
19pub use config::{EmitOn, HttpAuth, LineageConfig, ParentJob, Transport};
20pub use emitter::LineageEmitter;
21pub use event::{EventType, RunEvent};
22pub use lifecycle::{DatasetRef, InferredSchema, RunLifecycle};
23pub use sampling::{SampleState, SamplingSink, SamplingSource};
24
25/// JSON Schema for the `lineage:` config block (for `faucet schema lineage`).
26pub fn schemars_schema() -> schemars::Schema {
27    schemars::schema_for!(config::LineageConfig)
28}