venus_core/
lib.rs

1//! Core engine for Venus reactive notebook environment.
2//!
3//! # ⚠️ API Stability Warning
4//!
5//! **This crate contains internal APIs that are UNSTABLE and may change without notice.**
6//!
7//! For notebook development, use the `venus` crate instead:
8//! ```rust,ignore
9//! use venus::prelude::*;  // STABLE user-facing API
10//! ```
11//!
12//! The `venus-core` APIs are intended for:
13//! - Building custom notebook tools and extensions
14//! - Advanced integrations with Venus internals
15//! - Contributing to Venus development
16//!
17//! **Stability guarantees:**
18//! - ❌ **No SemVer guarantees** - breaking changes may occur in minor versions (0.x.y)
19//! - ❌ **No deprecation warnings** - APIs may be removed without warning
20//! - ❌ **Internal implementation details** - subject to refactoring
21//!
22//! If you need stable APIs, please open an issue describing your use case.
23//!
24//! ---
25//!
26//! This crate provides:
27//! - Graph engine for dependency resolution
28//! - Compilation pipeline (Cranelift JIT + LLVM)
29//! - State management with schema evolution
30//! - Salsa-based incremental computation
31//! - Cell execution and hot-reload
32
33pub mod compile;
34pub mod error;
35pub mod execute;
36pub mod graph;
37pub mod ipc;
38pub mod paths;
39pub mod salsa_db;
40pub mod state;
41pub mod widgets;
42
43pub use error::{Error, Result};
44pub use paths::NotebookDirs;
45pub use execute::{
46    CellContext, ExecutionCallback, HotReloader, LinearExecutor, LoadedCell, ParallelExecutor,
47    ProcessExecutor, WindowsDllHandler,
48};
49pub use graph::{CellId, CellInfo, CellParser, Dependency, GraphEngine};
50pub use salsa_db::{
51    CellData, CellOutputData, CellOutputs, CompilationStatus, CompiledCellData, CompilerSettings,
52    ExecutionStatus, GraphAnalysis, QueryResult, SourceFile, VenusDatabase, all_cells_executed,
53    cell_names, cell_output, cell_output_data, compile_all_cells, compiled_cell, dependency_hash,
54    execution_order, execution_order_result, graph_analysis, graph_analysis_result, invalidated_by,
55    parallel_levels, parse_cells, parse_cells_result,
56};
57pub use state::{CellOutput, SchemaChange, StateManager, TypeFingerprint, ZeroCopyOutput};