Everything You Need
Built on Isar with exclusive enhancements — Idris DB gives you more than just a database. Developer tools that actually help you build better.
Blazing Fast
10x faster than Hive with sub-millisecond queries. Optimized batch operations for maximum throughput.
Type Safe
Full Dart type safety with code generation. Catch errors at compile time, not runtime.
Cross Platform
Works seamlessly on Android, iOS, Web, macOS, Windows, and Linux from a single codebase.
Advanced Queries
Powerful indexes, filters, compound queries, sorting, and full-text search capabilities.
Offline First
100% offline operation with no server required. Your data lives on the device.
Zero Config
No setup, no configuration, no boilerplate. Import, define your model, and start coding.
ACID Transactions
Full transaction support ensuring data integrity. Atomic commits and rollbacks.
Real-time Watchers
Watch collections for changes and react instantly with real-time data update streams.
Query Analyzer
Smart query analysis with performance metrics, index suggestions, and optimization tips.
Enhanced Errors
Clear, actionable error messages with hints and suggested solutions. No more guessing.
Smart Logging
Multi-level logging system with query tracking, transaction logs, and performance monitoring.
Arabic Support
Full bilingual support with English and Arabic error messages, docs, and developer guidance.
Not Just Another Database
We didn't just fork Isar. We reimagined what a developer-first database experience should look like.
Errors You Can Fix
Every error message includes the exact problem, a clear hint, and a copy-paste solution. In both English and Arabic.
Queries You Can Optimize
The built-in Query Analyzer measures performance, detects missing indexes, and suggests specific optimizations.
Arabic, By Default
The first Flutter database with full Arabic error messages. Auto-detects device locale and switches languages seamlessly.
Up and Running in Minutes
From installation to your first query — Idris DB gets you building faster than any other Flutter database solution.
Installation
Add to pubspec.yaml
dependencies:
idris_db: ^1.0.5
dev_dependencies:
idris_db_generator: ^1.0.5
build_runner: ^2.4.0Install dependencies
flutter pub getDefine your model
import 'package:idris_db/idris_db.dart';
part 'user.g.dart';
@collection
class User {
Id? id;
@Index()
late String name;
late int age;
@Index()
late String email;
}Generate & open database
// Run code generation
dart run build_runner build// Open the database
final idrisDb = await IdrisDb.open([UserSchema]);CRUD Operations
// Create a new user
final user = User()
..name = 'Idris Ghamid'
..age = 25
..email = 'idris.ghamid@gmail.com';
// Write to database within a transaction
await idrisDb.writeTxn(() async {
await idrisDb.users.put(user);
});Query Performance Analyzer
Understand your queries. The built-in analyzer measures execution time, detects missing indexes, and provides actionable optimization suggestions.
final analyzer = QueryAnalyzer(idrisDb);
final analysis = await analyzer.analyze(() {
return idrisDb.users
.filter()
.ageGreaterThan(18)
.findAll();
});
// Access analysis results
print(analysis.executionTime);
print(analysis.suggestions);
print(analysis.indexRecommendations);Analysis Output
Execution Time
0.34ms — Excellent performance
Query Complexity
O(n) linear scan — 1,247 records scanned
Index Used
age index hit — 0 full scans required
Suggestion
Consider adding a composite index on (age, name) for this filter pattern.
Index Recommendation
Add @Index(composite: [CompositeIndex('age')]) to the User model for 3x faster lookups.
Full Bilingual Support
Idris DB is the first Flutter database package to offer complete Arabic language support for error messages, logs, and developer guidance.
// Switch to Arabic
IdrisDbEnhancedError.language = 'ar';
// Error messages now appear in Arabic
// ❌ خطأ Idris DB [COLLECTION_NOT_FOUND]
// المجموعة "User" غير موجودة في قاعدة البيانات
// Switch back to English
IdrisDbEnhancedError.language = 'en';❌ Idris DB Error
[COLLECTION_NOT_FOUND]
Collection "User" does not exist in the database.
❌ خطأ Idris DB
[COLLECTION_NOT_FOUND]
المجموعة "User" غير موجودة في قاعدة البيانات.
Performance That Speaks
Measured across real-world Flutter applications. Idris DB consistently delivers the fastest operations across all categories.
Write (1,000 docs)
Read (1,000 docs)
Update (1,000 docs)
Delete (1,000 docs)
Batch Insert
* Benchmark scores represent relative performance. Higher is better. Measured on Pixel 7 with 10,000 records.
Built for Real Apps
From chat apps to e-commerce — Idris DB powers the data layer for any Flutter application.
Chat Applications
Store messages, conversations, and user profiles with real-time sync. Perfect for messaging apps with offline support.
E-Commerce
Manage products, cart items, orders, and user preferences locally. Instant loading and smooth checkout experience.
Task Management
Organize tasks, projects, and notes with powerful queries and sorting. Filter by status, date, or priority instantly.
Note-Taking Apps
Rich text storage with full-text search capabilities. Auto-save, tags, and categories with sub-ms retrieval.
Social Media
Cache user profiles, feeds, and interactions locally. Reduce API calls and provide instant content loading.
Fitness & Health
Track workouts, nutrition, and health metrics with precise time-series data storage and fast aggregations.
How Does Idris DB Stack Up?
A side-by-side feature comparison with popular Flutter database solutions.
Comparison based on publicly available documentation as of 2025. Idris DB includes all Isar features plus exclusive enhancements.
Migrate from Isar in Minutes
Migrate in under 5 minutes. Your existing schemas and data stay compatible. Just swap the package.
Update pubspec.yaml
Replace Isar packages with Idris DB equivalents
dependencies:
isar: ^3.1.0
isar_flutter_libs: ^3.1.0 # Remove
isar_generator: ^3.1.0 # → idris_db_generatordependencies:
idris_db: ^1.0.5
dev_dependencies:
idris_db_generator: ^1.0.5
build_runner: ^2.4.0Update Imports
Swap Isar imports for Idris DB
import 'package:isar/isar.dart';
import 'package:isar/annotations.dart';import 'package:idris_db/idris_db.dart';
// That's it! One import.Open Database
Initialize Idris DB the same way you used Isar
final isar = await Isar.open(
[UserSchema],
directory: dir,
);final idrisDb = await IdrisDb.open(
[UserSchema],
);
// Optional: Enable Arabic error messages
IdrisDbEnhancedError.language = 'ar';Done! Start Coding
Your existing code works. Plus you get new tools.
// Your existing Isar code works as-is
await isar.users.put(user);
final users = await isar.users.where()
.findAll();// Same API you already know + extras
await idrisDb.users.put(user);
// NEW: Query Analyzer
final analysis = await QueryAnalyzer(
idrisDb,
).analyze(() => idrisDb.users.where()
.findAll());
print(analysis.suggestions);That's it! No data migration, no schema changes, no code rewrites. Just swap and ship.
Methods at a Glance
Quick reference for the most commonly used Idris DB methods. Click any method to see the code.
put()WriteInsert or update a single object
Future<Id> put(T object)
putAll()WriteInsert or update multiple objects in a batch
Future<List<Id>> putAll(List<T> objects)
get()ReadGet a single object by its ID
Future<T?> get(Id id)
getAll()ReadGet all objects in a collection
Future<List<T>> where().findAll()
delete()DeleteDelete a single object by its ID
Future<bool> delete(Id id)
where()QueryCreate a query builder for filtering
QueryBuilder<T> where()
watch()ReactiveWatch a collection for real-time changes
Stream<List<T>> watch()
writeTxn()TransactionExecute operations in an atomic transaction
Future<T> writeTxn<T>(Future<T> fn())
What's Coming Next
Idris DB is actively developed with regular updates. Here's a look at our development timeline.
- Isar-powered NoSQL engine
- Full CRUD with type safety
- ACID transactions
- Advanced queries with indexes
- Real-time watchers
- Query Performance Analyzer
- Enhanced error messages (EN/AR)
- Smart logging system
- Data Validation Framework
- Backup & Restore tools
- Query result caching
- Real-time database stats
- Development mode with debugging
- Export/Import tools (JSON & CSV)
- Visual database inspector
- Migration management system
- Encryption at rest
- Cloud sync integration
- Multi-collection joins
- GraphQL adapter
- Desktop app for management
- Distributed database support
- AI-powered query optimization
- Plugin ecosystem
- And 40+ more features
Version History
Every improvement, every fix. Track the evolution of Idris DB.
- Improved Query Analyzer accuracy
- Added Arabic auto-detection for device locale
- Fixed edge case in transaction rollback
- Updated documentation with new examples
- Added multi-language logging support
- Fixed batch operation memory leak
- Enhanced code generation reliability
- New Query Analyzer feature
- Improved error hint suggestions
- Performance optimization for large collections
- Initial release
- Full Isar compatibility
- Enhanced error messages (EN/AR)
- Smart logging system
- Cross-platform support (6 platforms)
Your Data, Protected
Security is not an afterthought. Idris DB provides multiple layers of protection for your sensitive data.
AES-256 Encryption at Rest
Idris DB inherits Isar's full AES-256 encryption support. Encrypt your entire database or individual collections with a single configuration option during database opening. Your users' data never leaves the device unencrypted.
AES-256 Encryption
Industry-standard encryption for your entire database or individual collections. Your data stays private.
Access Control
Secure database access with configurable permissions. Control who can read, write, and modify data.
Data Integrity
ACID transactions guarantee your data is never corrupted. Atomic commits and rollbacks protect every operation.
On-Device Storage
All data stays on the device. No server communication, no data leaks. Perfect for sensitive applications.
Audit Logging
Comprehensive logging tracks every database operation. Full transparency for compliance and debugging.
Zero-Knowledge
Idris DB never phones home. No analytics, no tracking, no telemetry. Your data is truly yours.
Interactive Playground
See Idris DB in action. Select an example, hit run, and watch the output appear in real-time.
final user = User()
..name = 'Idris Ghamid'
..age = 25
..email = 'idris@example.com';
await idrisDb.writeTxn(() async {
await idrisDb.users.put(user);
});
final adults = await idrisDb.users
.filter()
.ageGreaterThan(18)
.findAll();Built for Speed
Every millisecond counts. Idris DB is optimized for lightning-fast data operations.
Technology Stack
Idris DB integrates seamlessly with the tools you already know and love.
Flutter
Built for Flutter — the most popular cross-platform framework
Dart
Native Dart with type-safe code generation
Isar
Powered by Isar — the fastest Flutter database engine
Prisma
Prisma-compatible code generation and modeling
Figma
Design-first with Figma integration support
VS Code
First-class VS Code extension for Idris DB
Frequently Asked Questions
Everything you need to know about Idris DB. Can't find an answer? Reach out to us.
Ready to Build Faster?
Join developers who are already building better Flutter apps with Idris DB. Installation takes less than a minute.
Meet Idris Ghamid
The mind behind Idris DB — a solo engineer building world-class developer tools for the Flutter ecosystem.


Idris Ghamid
Founder & Software Architect
IDRISIUM CorpAbout
A passionate software engineer obsessed with performance and developer experience. Building Idris DB to give Flutter developers the database they deserve — fast, type-safe, and beautifully crafted. Every line of code reflects a commitment to quality that goes beyond functionality.