Skip to main content

Crate turso_core

Crate turso_core 

Source

Re-exports§

pub use io::UnixIO;
pub use io::clock::Clock;
pub use io::clock::MonotonicInstant;
pub use io::clock::WallClockInstant;
pub use io::Buffer;
pub use io::Completion;
pub use io::CompletionType;
pub use io::File;
pub use io::GroupCompletion;
pub use io::MemoryIO;
pub use io::OpenFlags;
pub use io::PlatformIO;
pub use io::SyscallIO;
pub use io::WriteCompletion;
pub use io::IO;
pub use storage::database::DatabaseStorage;
pub use storage::database::IOContext;
pub use types::IOResult;
pub use types::Value;
pub use types::ValueRef;

Modules§

busy
index_method
io
mvcc
Multiversion concurrency control (MVCC) for Rust.
schema
state_machine
storage
The storage layer.
types
vector

Macros§

assert_or_bail_corrupt
Asserts a condition or bails with LimboError::Corrupt.
bail_constraint_error
bail_corrupt_error
bail_parse_error
contains_ignore_ascii_case
emit_explain
Use this macro to emit an OP_Explain instruction. Please use this macro instead of calling emit_explain() directly, because we want to avoid allocating a String if we are not in explain mode.
ends_with_ignore_ascii_case
eq_ignore_ascii_case
get_cursor
Macro is necessary to help the borrow checker see we are only accessing state.cursor field and nothing else
io_yield_one
must_be_btree_cursor
return_and_restore_if_io
return_corrupt
return_if_io
Evaluate a Result<IOResult>, if IO return IO.
slice_in_bounds_or_corrupt
Bounds-checked buffer slicing that returns LimboError::Corrupt on out-of-bounds.
starts_with_ignore_ascii_case
turso_assert
Drop-in replacement for [assert!] that additionally reports to the Antithesis SDK when compiled with --features antithesis.
turso_assert_all
Asserts that all named conditions are true whenever this line is reached (logical AND).
turso_assert_eq
Drop-in replacement for [assert_eq!] that additionally reports to the Antithesis SDK in Antithesis builds (--cfg=antithesis).
turso_assert_greater_than
Asserts that left > right, providing richer comparison information to Antithesis than a plain turso_assert!(a > b).
turso_assert_greater_than_or_equal
Asserts that left >= right, providing richer comparison information to Antithesis than a plain turso_assert!(a >= b).
turso_assert_less_than
Asserts that left < right, providing richer comparison information to Antithesis than a plain turso_assert!(a < b).
turso_assert_less_than_or_equal
Asserts that left <= right, providing richer comparison information to Antithesis than a plain turso_assert!(a <= b).
turso_assert_ne
Drop-in replacement for [assert_ne!] that additionally reports to the Antithesis SDK in Antithesis builds (--cfg=antithesis).
turso_assert_reachable
Asserts that a code path is reached at least once during Antithesis testing.
turso_assert_some
Asserts that at least one of multiple named conditions is true whenever this line is reached (logical OR). All conditions are evaluated.
turso_assert_sometimes
Observational assertion: tells Antithesis that a condition should be true at least once across all test runs. Never panics.
turso_assert_sometimes_greater_than
Observational assertion: tells Antithesis that left > right should be true at least once across all test runs. Never panics.
turso_assert_sometimes_greater_than_or_equal
Observational assertion: tells Antithesis that left >= right should be true at least once across all test runs. Never panics.
turso_assert_sometimes_less_than
Observational assertion: tells Antithesis that left < right should be true at least once across all test runs. Never panics.
turso_assert_sometimes_less_than_or_equal
Observational assertion: tells Antithesis that left <= right should be true at least once across all test runs. Never panics.
turso_assert_unreachable
Asserts that a code path is never reached. This is a hard assertion — it will terminate the program if the path is executed.
turso_debug_assert
Drop-in replacement for [debug_assert!] that additionally reports to the Antithesis SDK when compiled with --features antithesis.
turso_soft_unreachable
Soft unreachable: signals to Antithesis that this code path should never be reached, but does not panic or exit. Without the antithesis feature, this is a no-op.

Structs§

AtomicSyncMode
Atomic wrapper for #name
AtomicTempStore
Atomic wrapper for #name
BufferPool
Static Buffer pool managing multiple memory arenas of which [ArenaBuffer]s are returned for requested allocations
CaptureDataChangesInfo
CheckpointResult
Connection
Database connection handle.
Database
The Database object contains per database file state that is shared between multiple connections.
DatabaseOpts
Configuration for database features
EncryptionContext
EncryptionOpts
NonNan
OpenDbAsyncState
State machine for async database opening
Page
Pager
The pager interface implements the persistence layer by providing access to pages of the database file, including caching, concurrency control, and transaction management.
PrepareContext
Captures connection settings at statement preparation time for cache invalidation.
PreparedProgram
Program
QueryRunner
SharedWalOpenTelemetry
Statement
SymbolTable
WalAutoActions
Automatic WAL maintenance actions a caller permits the engine to take during routine operations (begin write tx, commit, shutdown).
WalFile
WalFileShared
WalFileShared holds process-wide WAL metadata plus process-local coordination state.

Enums§

CaptureDataChangesMode
CdcVersion
CDC schema version with integer ordering for feature checks. Higher versions are supersets of lower versions.
CheckpointMode
CipherMode
CompletionError
EncryptionKey
LimboError
Numeric
OpenDbAsyncPhase
Phase tracking for async database opening
QueryMode
Register
SharedWalCoordinationOpenTelemetryMode
StatementStatusCounter
SyncMode
TempStore
Control where temporary tables and indices are stored. Matches SQLite’s PRAGMA temp_store values:
WalkControl

Constants§

CDC_VERSION_CURRENT
EXPLAIN_COLUMNS
EXPLAIN_QUERY_PLAN_COLUMNS
FIRST_ATTACHED_DB_ID
First database index used for ATTACH-ed databases. SQLite reserves 0 for “main” and 1 for “temp”, so attached databases start at index 2.
INVALID_DB_ID
Sentinel used when a SQL schema qualifier references an attached database name that cannot be resolved against the current connection’s attached catalog (e.g. after reloading a CREATE TEMP TRIGGER tr ON aux.x ... row from temp.sqlite_schema without aux being attached). Stored in Trigger::target_database_id so filters never accidentally match a real database. Never equal to any real db id — guaranteed by usize::MAX.
MAIN_DB_ID
Database index for the main database (always 0 in SQLite).
TEMP_DB_ID
Database index for the temp database (always 1 in SQLite).

Traits§

CaptureDataChangesExt
Convenience methods for Option<CaptureDataChangesInfo> to keep call sites simple.
FromValueRow
IOExt
Wal
Write-ahead log (WAL).

Functions§

io_error
Convert a std::io::Error into a LimboError with an operation label.
is_attached_db
Returns true if the database index refers to an attached database (i.e. not “main” and not “temp”).
is_main_or_temp_db
Returns true if the database index refers to “main” or “temp”
resolve_ext_path
walk_expr_mut
Recursively walks a mutable expression, applying a function to each sub-expression.

Type Aliases§

PageRef
Result
Row
StepResult