mirror of https://github.com/AMT-Cheif/drift.git
58 lines
3.8 KiB
Markdown
58 lines
3.8 KiB
Markdown
# Drift
|
||
|
||
_Note: Moor has been renamed to drift_
|
||
|
||
[![Build Status](https://github.com/simolus3/drift/actions/workflows/main.yml/badge.svg)](https://github.com/simolus3/drift/actions/workflows/main.yml/badge.svg)
|
||
[![Using melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos)
|
||
|
||
| Core | Generator |
|
||
| :---------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: |
|
||
| [![Main version](https://img.shields.io/pub/v/drift.svg)](https://pub.dev/packages/drift) | [![Generator version](https://img.shields.io/pub/v/drift_dev.svg)](https://pub.dev/packages/drift_dev) |
|
||
|
||
Drift is a reactive persistence library for Flutter and Dart, built on top of
|
||
SQLite.
|
||
Drift is
|
||
|
||
- __Flexible__: Drift lets you write queries in both SQL and Dart,
|
||
providing fluent apis for both languages. You can filter and order results
|
||
or use joins to run queries on multiple tables. You can even use complex
|
||
SQL features like `WITH` and `WINDOW` clauses.
|
||
- __🔥 Feature rich__: Drift has builtin support for transactions, schema
|
||
migrations, complex filters and expressions, batched updates and joins. We
|
||
even have a builtin IDE for SQL!
|
||
- __📦 Modular__: Thanks to builtin support for daos and `import`s in SQL files, drift helps you keep your database code simple.
|
||
- __🛡️ Safe__: Drift generates type-safe code based on your tables and queries. If you make a mistake in your queries, drift will find it at compile time and
|
||
provide helpful and descriptive lints.
|
||
- __⚡ Fast__: Even though drift lets you write powerful queries, it can keep
|
||
up with the performance of key-value stores like shared preferences and Hive. Drift is the only major persistence library with builtin threading support, allowing you to run database code across isolates with zero additional effort.
|
||
- __Reactive__: Turn any SQL query into an auto-updating stream! This includes complex queries across many tables
|
||
- __⚙️ Cross-Platform support__: Drift works on Android, iOS, macOS, Windows, Linux and the web. [This template](https://github.com/simolus3/drift/tree/develop/examples/app) is a Flutter todo app that works on all platforms.
|
||
- __🗡️ Battle tested and production ready__: Drift is stable and well tested with a wide range of unit and integration tests. It powers production Flutter apps.
|
||
|
||
With drift, persistence on Flutter is fun!
|
||
|
||
__To start using drift, read our detailed [docs](https://drift.simonbinder.eu/docs/getting-started/).__
|
||
|
||
If you have any questions, feedback or ideas, feel free to [create an
|
||
issue](https://github.com/simolus3/drift/issues/new). If you enjoy this
|
||
project, I'd appreciate your [🌟 on GitHub](https://github.com/simolus3/drift/).
|
||
|
||
## Working on this project
|
||
|
||
This repository contains a number of packages making up the drift project, most
|
||
notably:
|
||
|
||
- `drift`: The main runtime for drift, which provides most APIs.
|
||
- `drift_dev`: The compiler for drift tables, databases and daos. It
|
||
also contains a fully-featured SQL IDE for the Dart analyzer.
|
||
- `sqlparser`: A SQL parser and static analyzer, written in pure Dart. This package can be used without drift to perform analysis on SQL statements.
|
||
It's on pub at
|
||
[![sqlparser](https://img.shields.io/pub/v/sqlparser.svg)](https://pub.dev/packages/sqlparser)
|
||
|
||
We use [melos](https://melos.invertase.dev/) to manage the different packages
|
||
in this repository.
|
||
|
||
You can install it with `dart pub global activate melos`. To activate it in this
|
||
repository, run `dart pub get` in this directory followed by `melos bootstrap`.
|
||
|