Skip to main content

sqlmodel_frankensqlite/
lib.rs

1//! FrankenSQLite driver for SQLModel Rust.
2//!
3//! `sqlmodel-frankensqlite` is a **pure-Rust SQLite driver** for the SQLModel ecosystem.
4//! It implements the `Connection` trait from `sqlmodel-core`, backed by
5//! [FrankenSQLite](https://github.com/Dicklesworthstone/frankensqlite) — a pure-Rust
6//! SQLite reimplementation with page-level MVCC and RaptorQ self-healing.
7//!
8//! # Role In The Architecture
9//!
10//! - Implements `sqlmodel-core::Connection` for FrankenSQLite
11//! - No FFI or `unsafe` code (beyond the Send/Sync wrappers)
12//! - Enables `sqlmodel-query` and `sqlmodel-session` to run against FrankenSQLite
13//! - Supports `BEGIN CONCURRENT` for parallel write throughput
14//!
15//! # Thread Safety
16//!
17//! `FrankenConnection` is both `Send` and `Sync`, using internal mutex
18//! synchronization to protect the underlying FrankenSQLite connection.
19//! This allows connections to be shared across async tasks safely.
20
21#![allow(unsafe_code)] // Only for Send/Sync impls on the mutex-guarded inner type
22
23pub mod connection;
24pub mod value;
25
26pub use connection::{FrankenConnection, FrankenTransaction};