Drift
drift.simonbinder.eu
What it is
Drift is a reactive persistence library for relational data in Dart and Flutter applications. It maps database rows to selected objects and offers type-safe queries; watched queries can emit updates as underlying data changes. Its SQL parser and analyzer can validate queries at compile time and generate Dart row code, using drift_dev and build_runner for code generation. Drift supports SQLite and has packages for PostgreSQL and libSQL connections, including local-copy synchronization with libSQL. Developers can use migration utilities, but need to write migrations when changing schemas used by existing apps. Encrypted databases are possible through SQLite3MultipleCiphers with a NativeDatabase executor, provided the app sets an encryption key. Documented implementations cover Android, iOS, Windows, Linux, macOS, and web. Some APIs, including date-time modification APIs, are SQLite-only with PostgreSQL. Full web support may require COOP/COEP security headers; Chrome on Android can have cross-tab persistence issues without them. Drift is free, and its documentation includes a DevTools extension page; questions and feedback can go to GitHub discussions.
Spec sheet
- What it does
- Drift is a reactive persistence library for relational data in Dart and Flutter applications.Read 30 Sep 2026 · drift.simonbinder.eu
- Intended users
- Drift is presented for developers building Dart and Flutter applications that need relational persistence.Read 29 Sep 2026 · drift.simonbinder.eu
- Platforms
- Drift supports Android, iOS, Windows, Linux, macOS, and web through platform-specific database implementations.Read 29 Sep 2026 · drift.simonbinder.eu
- Support
- The setup guide directs users with questions or feedback to start a discussion on GitHub.Read 30 Sep 2026 · drift.simonbinder.eu
- Backends
- The setup guide documents SQLite and PostgreSQL dependencies, and the documentation also covers remote libSQL and Turso.Read 29 Sep 2026 · drift.simonbinder.eu
- Database integrations
- Drift supports SQLite and has packages for PostgreSQL and libSQL connections, including local-copy synchronization with libSQL.Read 30 Sep 2026 · drift.simonbinder.eu
- Dev tooling
- The setup uses drift_dev and build_runner to generate code at compile time.Read 29 Sep 2026 · drift.simonbinder.eu
- Developer tools
- Drift provides a DevTools extension for inspecting databases and tables, modifying table contents, and validating schemas.Read 30 Sep 2026 · drift.simonbinder.eu
- Encryption
- Native databases can use SQLite3MultipleCiphers for encryption, and the documentation recommends this approach for new apps.Read 30 Sep 2026 · drift.simonbinder.eu
- Migrations
- Drift provides migration utilities, but developers need to write migrations when changing an existing database schema.Read 29 Sep 2026 · drift.simonbinder.eu
- PostgreSQL limit
- Some APIs, including date-time modification APIs, are only supported with SQLite; most queries work with PostgreSQL without modification.Read 30 Sep 2026 · drift.simonbinder.eu
- Reactive queries
- Queries can be watched as auto-updating streams that emit when the underlying data changes.Read 30 Sep 2026 · drift.simonbinder.eu
- Schema changes
- Drift provides migration tools, but developers need to write migrations when changing a database schema used by existing apps.Read 30 Sep 2026 · drift.simonbinder.eu
- SQL support
- Drift includes an SQL parser and analyzer that can validate queries at compile time and generate Dart row code.Read 29 Sep 2026 · drift.simonbinder.eu
- Supported platforms
- The documented implementations support Android, iOS, Windows, Linux, macOS, and web.Read 30 Sep 2026 · drift.simonbinder.eu
- Type safety
- Drift generates Dart objects for database rows and can analyze SQL at compile time to generate type-safe APIs.Read 30 Sep 2026 · drift.simonbinder.eu
- Web browser requirements
- Some browsers need COOP/COEP security headers for full web support, and Chrome on Android can have cross-tab persistence issues without the required headers.Read 30 Sep 2026 · drift.simonbinder.eu
- What it is
- Drift is a reactive persistence library for relational data in Dart and Flutter apps.Read 29 Sep 2026 · drift.simonbinder.eu
Strong points and limits
Strong points
- Type-safe queries map rows to chosen objects.
- Watched queries update as data changes.
- SQL can be validated at compile time.
- Documented implementations cover six operating system and web platforms.
- Free plan is listed.
Limits
- Developers must write migrations for existing schemas.
- Some PostgreSQL APIs are SQLite-only.
- Full web support may require COOP/COEP headers.
- Chrome on Android can have cross-tab persistence issues without those headers.
Who it suits
Drift is for developers building Dart and Flutter applications that need relational data persistence. It suits projects that need reactive queries, compile-time SQL checks, or connections to its documented database options.
Verdict
Drift provides reactive relational persistence and compile-time query tooling across its documented Dart and Flutter platforms. Projects should account for migration work and the documented PostgreSQL and browser limitations.
Where Specifiction places it
- Mobile Databases#19 of 267.6