When developing a mobile app for an online catalog with 50,000 items, we faced a problem: every user search triggered a full table scan in Hive, causing delays up to 2 seconds. Switching to Isar with indexes reduced response time to 50 ms — a 40x speed boost. Isar is a NoSQL database built on Rust with FFI bindings for Dart. It delivers performance close to SQLite with a more convenient API. Over 5 years we've integrated Isar into 30+ Flutter projects where complex queries, reactivity, and atomic transactions were needed. Isar outperforms Hive by 5x on reads and 2x on writes; with indexes the gap reaches 10x. Support costs drop due to reduced response time and up to 60% fewer server calls.
According to benchmarks, Isar processes up to 5000 records per second on mobile devices — that's 5x faster than Hive under the same conditions.
Problems we solve
- Slow queries without indexes: Without proper indexing, every query scans the entire collection. We design and implement indexes (single and composite) that accelerate lookups by 5-10x.
- Lack of reactivity: Manually refreshing UI after data changes is error-prone. We integrate reactive streams that automatically update the UI via BLoC or Riverpod.
-
Data integrity during writes: Partial writes can corrupt state. We use atomic transactions (
writeTxn) to ensure all-or-nothing operations.
How we do it (proven expertise)
Our technical approach: we analyze your data model and query patterns, then design an optimized schema with appropriate indexes. For example, on an e-commerce project, we reduced product search from 1.8s to 120ms by adding a composite index on category + price and switching from Hive to Isar.
Index setup example
@collection class Product { Id id = Isar.autoIncrement; @Index(type: IndexType.value) late String category; @Index(composite: [CompositeIndex('price')]) late String name; late double price; late bool inStock; } Dependencies in pubspec:
dependencies: isar: ^3.1.0+1 isar_flutter_libs: ^3.1.0+1 dev_dependencies: isar_generator: ^3.1.0+1 build_runner: ^2.4.6 After code generation (flutter pub run build_runner build) and initialization:
final isar = await Isar.open( [ProductSchema], directory: (await getApplicationDocumentsDirectory()).path, ); Index types in Isar
| Index type | Description | Use case |
|---|---|---|
IndexType.value | Hash index on a single field | Equality (==, ===) |
IndexType.hash | Hash for exact match | Exact search by ID or code |
| Composite | Combination of multiple fields | Queries like WHERE category = ? AND price > ? |
Indexes on category and composite on name+price eliminate full table scans — giving up to 10x speedup.
Process of evaluation and work
- Requirements analysis: We collect your data model, typical queries, and performance targets.
- Schema design: We design the schema with optimal indexes and data types.
- Implementation: We write the models, code generation, and repository layer.
- Reactive integration: We connect Isar streams to your state management (BLoC/Riverpod).
- Migrations: We set up migration callbacks for future schema changes.
- Testing: We test with real data volumes and profile query performance.
- Deployment & docs: We provide documentation and train your team.
Orienting timelines
- Basic setup (3-5 collections with indexes): 1-2 days.
- With reactive streams and migrations: 2-4 days.
- Complex projects (many collections, custom queries): 4-8 days.
Cost is determined after analysis. Contact us for a project estimate. Order turnkey Isar setup with guaranteed results. Get a consultation on integrating Isar into your project. We guarantee on-time delivery — over 30 successful implementations.







