The Fastest NoSQL Database for Flutter
Built by IDRISIUM Corp | Idris Ghamid (إدريس غامد)
Features • Installation • Quick Start • Roadmap • Documentation
✨ Why Choose Idris DB?
Idris DB is an enhanced fork of Isar with exclusive features that make it the best choice for Flutter developers.
⚡ Core Features (Available Now)
Built on the solid foundation of Isar:
- Blazing Fast - 10x faster than Hive
- Type Safe - Full Dart type safety with code generation
- Cross Platform - Android, iOS, Web, Desktop
- Advanced Queries - Indexes, filters, sorting, full-text search
- Offline First - Works 100% offline
- Zero Config - No setup required
- ACID Transactions - Full transaction support
- Watchers - Real-time data updates
🚧 Enhanced Features (In Development)
We're actively working on exclusive features:
✅ Available Now (v1.0.0)
- Query Performance Analyzer - Smart query analysis with index suggestions
- Enhanced Error Messages - Clear, actionable errors with hints and solutions
- Smart Logging System - Multi-level logging with query/transaction tracking
- Arabic Support - Full bilingual support (English + العربية)
🔨 Coming in v1.1.0 (Next 2 Months)
- Data Validation Framework - Validate data before insert/update
- Backup & Restore - One-line database backup and restore
- Query Caching - Auto-caching for frequently accessed data
- Real-time Stats - Monitor database performance in real-time
- Development Mode - Extra checks and warnings during development
🔮 Planned for v1.2.0+
- Export/Import Tools - Export to JSON/CSV with one line
- Visual Inspector - Debug widget for development
- And 40+ more features! - See our complete roadmap
🎯 Our Vision
Idris DB aims to be "The Developer-First Database" - not just fast, but with tools that make you a better, more productive developer.
📦 Installation
Add to your pubspec.yaml:
dependencies:
idris_db: ^1.0.5
dev_dependencies:
idris_db_generator: ^1.0.5
build_runner: ^2.4.0
Then run:
flutter pub get
🚀 Quick Start
1. Define 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;
}
2. Generate Code
flutter pub run build_runner build
3. Open Database
final idrisDb = await IdrisDb.open([UserSchema]);
4. CRUD Operations
// Create
final user = User()
..name = 'Idris Ghamid'
..age = 25
..email = 'idris.ghamid@gmail.com';
await idrisDb.writeTxn(() async {
await idrisDb.users.put(user);
});
// Read
final users = await idrisDb.users.where().findAll();
// Update
await idrisDb.writeTxn(() async {
user.age = 26;
await idrisDb.users.put(user);
});
// Delete
await idrisDb.writeTxn(() async {
await idrisDb.users.delete(user.id!);
});
🎯 Available Features
Query Performance Analyzer (Available Now!)
Analyze your queries and get optimization suggestions:
final analyzer = QueryAnalyzer(idrisDb);
final analysis = await analyzer.analyze(() {
return idrisDb.users
.filter()
.ageGreaterThan(18)
.findAll();
});
print(analysis);
// Output:
// 📊 Query Analysis:
// ⏱️ Duration: 234ms
// 📈 Results: 5000
//
// ⚠️ Warnings:
// - Query took 234ms (slow)
// - Large result set: 5000 documents
//
// 💡 Suggestions:
// - Consider adding an index on the 'age' field
// - Consider using pagination with .limit() and .offset()
🚧 Coming Soon
The following features are under active development and will be available in v1.1.0:
Better Error Messages
Clear, actionable errors with hints and solutions in both English and Arabic.
Smart Logging System
Comprehensive logging with multiple levels, history, and performance tracking.
Data Validation Framework
Built-in validators for common patterns (email, phone, URL, etc.) with custom validation support.
Backup & Restore
One-line database backup with compression and encryption support.
Arabic Support (Available Now!)
Full bilingual support for error messages in English and Arabic:
// Set language to Arabic
IdrisDbEnhancedError.language = 'ar';
// Or detect from device locale
final locale = Platform.localeName;
IdrisDbEnhancedError.language = locale.startsWith('ar') ? 'ar' : 'en';
// All error messages will now use Arabic
// ❌ خطأ Idris DB [COLLECTION_NOT_FOUND]
// المجموعة "User" غير موجودة في قاعدة البيانات
//
// 💡 تلميح: قد يكون schema المجموعة غير مسجل...
// ✅ الحل: أضف UserSchema إلى قائمة schemas...
🎯 Feature Icons
📊 Performance Benchmarks
Idris DB (built on Isar) is blazing fast - up to 10x faster than other Flutter databases:
Detailed Benchmarks
Insert Performance
Query Performance
Update Performance
Database Size
🔍 Database Inspector
Idris DB comes with a powerful visual inspector for debugging:
To launch the inspector, run your app in debug mode and open the inspector link in the logs.
📚 Documentation
📚 Comprehensive documentation is available at idris-db-docs.vercel.app
- Getting Started: Quick Start Guide
- Roadmap: 50 Features Plan
- Current Status: Implementation Audit
- API Reference: Full API Docs
🙏 Attribution
Idris DB is built on top of excellent open-source projects:
- Isar Plus by Ahmet Aydın - Enhanced fork of Isar
- Isar by Simon Choi - Original high-performance database
- MDBX by Leonid Yuriev - Embedded database engine
- SQLite - Web platform support
All licensed under Apache License 2.0.
👤 Author
Idris Ghamid (إدريس غامد)
- Email: idris.ghamid@gmail.com
- GitHub: @idris-ghamid
- Telegram: @IDRV72
- Website: idrisium.linkpc.net
📄 License
Licensed under the Apache License, Version 2.0.
See LICENSE file for details.
Built by IDRIS GHAMID
Making Flutter development faster and easier, one database at a time.
Libraries
- idris_db
- Fast, easy to use, and fully async NoSQL database for Flutter and Dart.