Об этом проекте

SQLite Loom — это реактивный слой SQLite, построенный на базе sqflite_common для приложений на Dart и Flutter. Он предоставляет типизированный интерфейс для операций с базой данных без необходимости генерации кода, аннотаций или использования build runners. Ключевые возможности включают: - Типизированные таблицы и запросы: поддержка типизированных значений для столбцов и неизменяемых запросов для создания фильтров, сортировки и пагинации. - Реактивное чтение: предоставление живых потоков (streams) для отслеживания списков, количества и наличия данных с инвалидацией, учитывающей транзакции. - Безопасная запись: реализация защищенной записи, при которой обновления и удаления без фильтрации завершаются ошибкой, если они не были явно запрошены через allRows(). - Явные миграции: наличие системы миграций, которой можно управлять с помощью предоставленного CLI или программно при запуске. - Управление связями: поддержка явных дескрипторов для связей один-к-одному, один-ко-многим и многие-к-одному, включая пакетную загрузку для предотвращения паттернов запросов N+1. - Расширенная поддержка SQLite: интеграция с такими функциями SQLite, как режим WAL, внешние ключи, предложения RETURNING и строгие таблицы (strict tables). - Диагностика: наличие DbObserver для мониторинга длительности запросов и количества результатов, а также инструментов для проверки целостности и выполнения vacuuming.