e3980d005f
yachay-core: notebook como secuencia de celdas (orden de lectura) + DAG de dependencias (orden de ejecución). Celdas markdown/código/embed con content_hash BLAKE3; editar una propaga staleness a descendientes; digest Merkle por celda (content_hash ‖ digests upstream) y notebook_digest que certifica reproducibilidad. Demo CLI en apps/yachay. 14 tests. Sin kernel ni UI, #![forbid(unsafe_code)]. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
23 lines
874 B
Rust
23 lines
874 B
Rust
//! `yachay-core` — el núcleo de los notebooks reproducibles.
|
|
//!
|
|
//! Un notebook de yachay es a la vez una secuencia de celdas (el orden
|
|
//! de lectura) y un DAG de dependencias (el orden de ejecución). Editar
|
|
//! una celda marca obsoletas a sus descendientes; un digest Merkle
|
|
//! certifica que dos corridas del mismo notebook producen lo mismo —
|
|
//! reproducibilidad verificable, no prometida.
|
|
//!
|
|
//! - [`cell`] — la [`Cell`] y su clase ([`CellKind`]: markdown, código,
|
|
//! o un embed de otro módulo brahman).
|
|
//! - [`notebook`] — el [`Notebook`]: DAG, staleness y digest.
|
|
//!
|
|
//! Sin kernel, sin ejecución real, sin UI — tipos puros. La ejecución de
|
|
//! código y el render de los embeds van en capas superiores.
|
|
|
|
#![forbid(unsafe_code)]
|
|
|
|
pub mod cell;
|
|
pub mod notebook;
|
|
|
|
pub use cell::{Cell, CellId, CellKind, CellState};
|
|
pub use notebook::Notebook;
|