DEV Community

MD DILDAR MANDAL
MD DILDAR MANDAL

Posted on • Edited on

Isar: A Super Fast NoSQL Database for Flutter & Dart

Recently I came accross this nice database you can give it a quick read.

What is Isar?

Isar is a fast, fully asynchronous NoSQL database optimized for Flutter and Dart. It runs locally on mobile, desktop, and web platforms with a native Dart API. Isar is designed to be simple, scalable, performant, and developer-friendly, with built-in support for reactive queries and complex filtering.

Features of Isar:

• NoSQL document database designed for embedded use (runs inside your app with zero external dependencies).
• Supports schema definition using Dart classes with annotations.
• Provides full reactive queries, UI updates automatically on data changes.
• Compact, high-performance transactions for fast and safe reads/writes.
• Full text search with token based indexing for searching text fields.
• Composite and multi-entry indexes for structured queries.
• Supports JSON serialization and deserialization.
• Comes with a visual inspector for debugging database contents in debug mode.
• Cross-platform support for Android, iOS, Web, Desktop platforms.

Transactions in Isar

Isar enforces safe and atomic transactions.

  • Writes must be wrapped in a writeTxn transaction.
  • Reads are async and safe by default.

This ensures data integrity and prevents inconsistent states.

Example:

final isar = await Isar.open([UserSchema]);

await isar.writeTxn(() async {
  final user = User()..name = 'Alice'..age = 25;
  await isar.users.put(user); // insert or update
});

final users = await isar.users.filter().ageGreaterThan(20).findAll();
print(users); 
Enter fullscreen mode Exit fullscreen mode

Getting Started

Step 1 : Add Isar to your project:

dependencies:
  isar: any
  isar_flutter_libs: any
  path_provider: any
dev_dependencies:
  isar_generator: any
  build_runner: any
Enter fullscreen mode Exit fullscreen mode

Step 2 : Define your model with annotations:

import 'package:isar/isar.dart';

part 'user.g.dart';

@collection
class User {
  Id id = Isar.autoIncrement;
  late String name;
  late int age;
}
Enter fullscreen mode Exit fullscreen mode

Step 3 : Run build:

flutter pub run build_runner build
Enter fullscreen mode Exit fullscreen mode

That’s it! You now have a fully working local NoSQL database integrated into your Flutter app.


Learn from the official documentation: https://isar.dev/tutorials/quickstart.html

Top comments (0)