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