Idris DB Banner

The Fastest NoSQL Database for Flutter

pub package License GitHub Stars Pub Points Pub Likes

Built by IDRISIUM Corp | Idris Ghamid (إدريس غامد)

FeaturesInstallationQuick StartRoadmapDocumentation


✨ Why Choose Idris DB?

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)

Enhanced Features

We're actively working on exclusive features:

Available Now (v1.0.0)

  1. Query Performance Analyzer - Smart query analysis with index suggestions
  2. Enhanced Error Messages - Clear, actionable errors with hints and solutions
  3. Smart Logging System - Multi-level logging with query/transaction tracking
  4. Arabic Support - Full bilingual support (English + العربية)

🔨 Coming in v1.1.0 (Next 2 Months)

  1. Data Validation Framework - Validate data before insert/update
  2. Backup & Restore - One-line database backup and restore
  3. Query Caching - Auto-caching for frequently accessed data
  4. Real-time Stats - Monitor database performance in real-time
  5. Development Mode - Extra checks and warnings during development

🔮 Planned for v1.2.0+

  1. Export/Import Tools - Export to JSON/CSV with one line
  2. Visual Inspector - Debug widget for development
  3. And 40+ more features! - See our complete roadmap

🎯 Our Vision

Idris DB 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

Feature Icons

📊 Performance Benchmarks

Idris DB (built on Isar) is blazing fast - up to 10x faster than other Flutter databases:

Flutter Database Library Comparison

Detailed Benchmarks

Insert Performance

Insert Benchmark

Query Performance

Query Benchmark

Update Performance

Update Benchmark

Database Size

Size Comparison

🔍 Database Inspector

Idris DB comes with a powerful visual inspector for debugging:

Idris DB Inspector

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


🙏 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 (إدريس غامد)


📄 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.