Expand description
cliban-core — cliban’s storage + domain layer in Rust.
The Store writer-thread actor over a
single rusqlite connection, plus domain contexts for projects, milestones,
issues, labels, relations, and the per-issue activity log. No daemon, no
sockets — the CLI and TUI link this crate and open the SQLite file in
process.
Re-exports§
Modules§
- audit
- Recording what the tool did, so the timeline is trustworthy without anyone remembering to write it down.
- contexts
- Domain contexts. Each function takes
&rusqlite::Connectionand runs on the store’s writer thread viacrate::store::Store::call. - error
- Error type for the store + contexts.
- migrations
- Migration runner. The project Markdown description remains the durable project-memory store, so no separate notes schema is needed.
- paths
- XDG-aware paths for the cliban SQLite DB and config.
- projection
- JSON projection structs — the CLI
to_mapshapes the core serializes. - rows
- Row to struct mappers. Column order here is the single source of truth for
the
SELECT <COLS>strings in the contexts. - schema
- Row structs for cliban-core’s tables. Plain data carriers loaded from
SQLite; validation lives in the contexts. Timestamps are
DateTime<Utc>, datesNaiveDate. - sections
- Locating H2 sections in the issue/milestone description markdown.
- store
- The store: a
Storehandle (Clone + Send + Sync) over a single writer thread that owns the one rusqliteConnection. - time
- Timestamp + date formatting helpers matching Ecto’s SQLite TEXT encoding.