idris_db 1.0.5
idris_db: ^1.0.5 copied to clipboard
High-performance NoSQL database for Flutter with exclusive developer tools - Enhanced error messages, smart logging, query analyzer, and Arabic support. Built by IDRISIUM Corp.
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:
🔍 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.