room library

Sixplace's Room-inspired SQLite persistence layer.

SPRoom follows the Database / Entity / DAO / Migration / Transaction model familiar from AndroidX Room in Kotlin Android projects while using the sqflite ecosystem underneath.

Design acknowledgement: special thanks to the AndroidX Room team for the persistence architecture that inspired this API, and to the sqflite maintainers/contributors for the Flutter/Dart SQLite foundation used by SPRoom.

Classes

SPRoom
Entry point for creating Room-style sqflite databases.
SPRoomCallback
Lifecycle callback for an SPRoom database.
SPRoomColumn
Declarative column metadata for an SPRoomEntitySchema.
SPRoomDao<T>
Generic DAO with Room-style CRUD, raw queries, transactions and streams.
SPRoomDatabase
Base class for an application SPRoom database.
SPRoomDatabaseBuilder<T extends SPRoomDatabase>
Builder for an SPRoomDatabase.
SPRoomEntityAdapter<T>
Converts a Dart entity to/from rows for a specific table.
SPRoomEntitySchema
Describes one SQLite table managed by SPRoom.
SPRoomExecutor
Thin public wrapper around a sqflite database/transaction executor.
SPRoomForeignKey
Declarative foreign-key metadata.
SPRoomIndex
Declarative SQLite index metadata.
SPRoomInvalidationTracker
Broadcast invalidation tracker used by reactive DAO queries.
SPRoomMigration
A migration from startVersion to endVersion.
SPRoomTypeConverter<T, D>
Converts custom application types into values accepted by sqflite.

Enums

SPRoomConflictStrategy
Conflict strategy for insert/update operations.
SPRoomForeignKeyAction
Foreign-key action supported by SQLite.
SPRoomSqlType
SQLite storage class used by SPRoomColumn.

Exceptions / Errors

SPRoomException
Base exception for SPRoom failures caused by schema/configuration problems.
SPRoomMissingMigrationException
Indicates that no registered migration can reach the target version.
SPRoomSchemaException
Indicates an invalid or mismatched entity/database schema.