Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/facett

facett-lineage/Cargo.toml

[package]
name = "facett-lineage"
description = "facett — the LINEAGE viewer facet. Reads skade's reserved `lineage_events` Arrow schema (event_id/actor/operation/input+output dataset/system refs/ts_micros/commit_seq) and renders the data-lineage graph — datasets as nodes, runs as edges — over the facett-graphnav GRAPH NAVIGATOR (query bar, canvas, inspector, layouts, paths). The `lineage_events` column shape is modelled LOCALLY (no skade dependency — facett is a leaf peer of skade); this is the facett viewer adapter the skade lineage design defers to facett."
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[features]
default = []
# L4: functional-status emitter passthrough (see facett-core::testmatrix). No-op in release.
testmatrix = ["facett-core/testmatrix", "facett-graphnav/testmatrix"]

[dependencies]
facett-core = { path = "../facett-core", version = "0.3.0" }
# The GRAPH NAVIGATOR (query/canvas/inspector/layouts/paths) + its PropGraph model —
# the lineage graph is a PropGraph wrapped in a GraphNav, so the whole IDE surface is
# reused unchanged.
facett-graphnav = { path = "../facett-graphnav", version = "0.2.0" }
egui = { workspace = true }
serde = { version = "1", features = ["derive"] }
serde_json = { workspace = true }
# Read the `lineage_events` RecordBatch (the same arrow 58 the rest of facett uses).
# The column SHAPE mirrors skade::lineage::lineage_events_schema(), modelled locally.
arrow-array = "59"
arrow-schema = "59"

[dev-dependencies]
# CPU render-proof (AccessKit nodes) via the kittest harness.
egui_kittest = { version = "0.36", features = ["snapshot"] }
# The reusable native+wasm demo HOST — `lineage_panel` mounts the lineage DAG as a
# Codeberg-Pages web demo and a native window from one source (facett-demo/README).
facett-wasm-demo = { path = "../facett-wasm-demo"}

# Native-only host dep: the native eframe `lineage_panel` names (`eframe::Result`).
# STILL target-gated after the glow→wgpu purge, for a new reason: eframe's plain
# `wgpu` feature expands to `egui-wgpu/default`, which re-enables `wgpu/webgl`.
# Ungated, cargo would unify that across both targets and put the dead WebGL2 backend
# into the wasm bundle — the same harm the old `glow` did, by a different route.
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
# `wgpu_no_default_features`, NOT `wgpu` (LAW 4 / GFX_V2 Decision 0). eframe's plain
# `wgpu` feature expands to `egui-wgpu/default` -> `wgpu/default` -> `wgpu-hal/default`
# -> **glow**, the GL backend this constellation dropped. Cargo features are additive
# and unify across the whole graph, so one DEV dependency spelling it this way turns the
# GL backend on for every crate here, normal edges included. Backends come from the
# workspace `wgpu` entry.
eframe = { version = "0.36", default-features = false, features = ["default_fonts", "wgpu_no_default_features", "wayland", "x11"] }

# `lineage_panel` needs `wasm-bindgen` for its `#[wasm_bindgen(start)]` web entry.
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen = "0.2"

[[example]]
name = "lineage_panel"
path = "examples/lineage_panel.rs"