About this project

SQLite Loom is a reactive SQLite layer built on top of sqflite_common for Dart and Flutter applications. It provides a typed interface for database operations without the need for code generation, annotations, or build runners. Key capabilities include: - Typed Tables & Queries: Supports typed values for columns and immutable queries for composing filters, ordering, and pagination. - Reactive Reads: Provides live streams to watch lists, counts, and existence of data, with transaction-aware invalidations. - Safe Writes: Implements guarded writes where unfiltered updates and deletes fail unless explicitly requested via allRows(). - Explicit Migrations: Includes a migration system that can be managed via a provided CLI or programmatically at startup. - Relationship Management: Supports explicit descriptors for one-to-one, one-to-many, and many-to-one relationships, including batched loading to prevent N+1 query patterns. - Advanced SQLite Support: Integrates with SQLite features such as WAL mode, foreign keys, RETURNING clauses, and strict tables. - Diagnostics: Includes a DbObserver for monitoring query durations and result counts, as well as tools for integrity checks and vacuuming.