Skip to main content

everruns_local/
lib.rs

1//! Local, SQLite-backed runtime backend stores for embedded Everruns hosts.
2//!
3//! This crate provides restart-survivable, file-backed implementations of the
4//! runtime backend traits used by an in-process host:
5//!
6//! - [`LocalSessionTaskRegistry`] — a [`everruns_core::session_task::SessionTaskRegistry`]
7//!   over SQLite, persisting tasks and their message channel.
8//! - [`LocalScheduleStore`] — a [`everruns_core::traits::SessionScheduleStore`]
9//!   over SQLite, with an additive JSON metadata bag (see its module docs).
10//! - [`LocalPlatformStore`] — a [`everruns_core::platform_store::PlatformStore`]
11//!   implementing the subagent-critical core honestly and returning explicit
12//!   unsupported errors for platform-management-only operations.
13//! - [`LocalProfile`] — named local env config (data dir, workspace, base URL,
14//!   org/principal identity).
15//! - [`LocalBackends`] — composable construction of `RuntimeBackends` + the
16//!   local stores, accepting a caller-provided event bus (via `RuntimeBackends`)
17//!   and file system factory (via the embedder's `PlatformDefinition`).
18//! - [`LocalRuntimeBuilder`] — optional sugar over `InProcessRuntimeBuilder`.
19//!
20//! It is part of the [Everruns](https://everruns.com) ecosystem and pairs with
21//! [`everruns-runtime`](https://crates.io/crates/everruns-runtime), which owns
22//! the optional host-backend slots these stores populate.
23
24mod backends;
25mod db;
26mod error;
27mod platform_store;
28mod profile;
29mod runtime_builder;
30mod schedule_store;
31mod task_registry;
32
33pub use backends::LocalBackends;
34pub use db::SqliteDb;
35pub use error::{LocalError, LocalResult};
36pub use platform_store::{LocalPlatformStore, LocalSessionRunner};
37pub use profile::LocalProfile;
38pub use runtime_builder::LocalRuntimeBuilder;
39pub use schedule_store::LocalScheduleStore;
40pub use task_registry::LocalSessionTaskRegistry;