# isar **Repository Path**: thirdparty-transplant/isar ## Basic Information - **Project Name**: isar - **Description**: https://github.com/isar/isar - **Primary Language**: Dart - **License**: Apache-2.0 - **Default Branch**: bug/1533 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-04 - **Last Updated**: 2025-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Quickstart • Documentation • Sample Apps • Support & Ideas • Pub.dev
> #### Isar [ee-zahr]: > > 1. River in Bavaria, Germany. > 2. [Crazy fast](#benchmarks) NoSQL database that is a joy to use. ⚠️ ISAR V4 IS NOT READY FOR PRODUCTION USE ⚠️ If you want to use Isar in production, please use the stable version 3. ## Features - 💙 **Made for Flutter**. Easy to use, no config, no boilerplate - 🚀 **Highly scalable** The sky is the limit (pun intended) - 🍭 **Feature rich**. Composite & multi-entry indexes, query modifiers, JSON support etc. - ⏱ **Asynchronous**. Parallel query operations & multi-isolate support by default - 🦄 **Open source**. Everything is open source and free forever! Isar database can do much more (and we are just getting started) - 🕵️ **Full-text search**. Make searching fast and fun - 📱 **Multiplatform**. iOS, Android, Desktop - 🧪 **ACID semantics**. Rely on database consistency - 💃 **Static typing**. Compile-time checked and autocompleted queries - ✨ **Beautiful documentation**. Readable, easy to understand and ever-improving Join the [Telegram group](https://t.me/isardb) for discussion and sneak peeks of new versions of the DB. If you want to say thank you, star us on GitHub and like us on pub.dev 🙌💙 ## Quickstart Holy smokes you're here! Let's get started on using the coolest Flutter database out there... ### 1. Add to pubspec.yaml ```yaml dependencies: isar: 4.0.0 isar_flutter_libs: 4.0.0 # contains Isar Core dev_dependencies: build_runner: any ``` ### 2. Annotate a Collection ```dart part 'email.g.dart'; @collection class Email { Email({ this.id, this.title, this.recipients, this.status = Status.pending, }); final int id; @Index(type: IndexType.value) final String? title; final List
To launch the inspector, just run your Isar app in debug mode and open the Inspector link in the logs.
## CRUD operations
All basic crud operations are available via the `IsarCollection`.
```dart
final newEmail = Email()..title = 'Amazing new database';
await isar.writeAsync(() {
isar.emails.put(newEmail); // insert & update
});
final existingEmail = isar.emails.get(newEmail.id!); // get
await isar.writeAsync(() {
isar.emails.delete(existingEmail.id!); // delete
});
```
## Database Queries
Isar database has a powerful query language that allows you to make use of your indexes, filter distinct objects, use complex `and()`, `or()` and `.xor()` groups, query links and sort the results.
```dart
final importantEmails = isar.emails
.where()
.titleStartsWith('Important') // use index
.limit(10)
.findAll()
final specificEmails = isar.emails
.filter()
.recipient((q) => q.nameEqualTo('David')) // query embedded objects
.or()
.titleMatches('*university*', caseSensitive: false) // title containing 'university' (case insensitive)
.findAll()
```
## Database Watchers
With Isar database, you can watch collections, objects, or queries. A watcher is notified after a transaction commits successfully and the target changes.
Watchers can be lazy and not reload the data or they can be non-lazy and fetch new results in the background.
```dart
Stream
|
|
| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
|
If you are interested in more benchmarks or want to check how Isar performs on your device you can run the [benchmarks](https://github.com/isar/isar_benchmark) yourself.
## Unit tests
If you want to use Isar database in unit tests or Dart code, call `await Isar.initializeIsarCore(download: true)` before using Isar in your tests.
Isar NoSQL database will automatically download the correct binary for your platform. You can also pass a `libraries` map to adjust the download location for each platform.
Make sure to use `flutter test -j 1` to avoid tests running in parallel. This would break the automatic download.
## Contributors ✨
Big thanks go to these wonderful people:
Alexis |
Burak |
Carlo Loguercio |
Frostedfox |
Hafeez Rana |
Hamed H. |
JT |
Jack Rivers |
Joachim Nohl |
Johnson |
LaLucid |
Lety |
Michael |
Moseco |
Nelson Mutane |
Oscar Palomar |
Peyman |
Simon Choi |
Ura |
blendthink |
mnkeis |
nobkd |