v1.0.5 — Query Analyzer & Arabic Support

The Developer-First
Database for Flutter

High-performance NoSQL database built on Isar with exclusive developer tools. Enhanced error messages, smart logging, query analyzer, and full Arabic support.

View on pub.dev
$ flutter pub add idris_db
Android
iOS
Web
macOS
Windows
Linux
0xFaster
0Platforms
0%Offline
0%Type Safe
pub.dev: 100
Likes: 42
Popularity: 85%
Flutter FavoriteNoSQLOffline FirstCross PlatformType SafeLightning FastOpen SourceDeveloper ToolsQuery AnalyzerArabic SupportACID TransactionsSmart LoggingFlutter FavoriteNoSQLOffline FirstCross PlatformType SafeLightning FastOpen SourceDeveloper ToolsQuery AnalyzerArabic SupportACID TransactionsSmart Logging
Features

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.

Why Idris DB?

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.

Quick Start

Up and Running in Minutes

From installation to your first query — Idris DB gets you building faster than any other Flutter database solution.

Installation

1

Add to pubspec.yaml

pubspec.yaml
dependencies:
  idris_db: ^1.0.5

dev_dependencies:
  idris_db_generator: ^1.0.5
  build_runner: ^2.4.0
2

Install dependencies

flutter pub get
3

Define your model

user.dart
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;
}
4

Generate & open database

terminal
// Run code generation
dart run build_runner build
main.dart
// Open the database
final idrisDb = await IdrisDb.open([UserSchema]);

CRUD Operations

create_user.dart
// 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);
});
Developer Tools

Query Performance Analyzer

Understand your queries. The built-in analyzer measures execution time, detects missing indexes, and provides actionable optimization suggestions.

analyzer_example.dart
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.

Language Switching
i18n_setup.dart
// 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';
English

❌ Idris DB Error

[COLLECTION_NOT_FOUND]

Collection "User" does not exist in the database.

العربية

❌ خطأ Idris DB

[COLLECTION_NOT_FOUND]

المجموعة "User" غير موجودة في قاعدة البيانات.

Performance

Performance That Speaks

Measured across real-world Flutter applications. Idris DB consistently delivers the fastest operations across all categories.

Write (1,000 docs)

Idris DB
98%
Hive
35%
SQLite
52%
ObjectBox
72%

Read (1,000 docs)

Idris DB
95%
Hive
30%
SQLite
55%
ObjectBox
68%

Update (1,000 docs)

Idris DB
96%
Hive
38%
SQLite
48%
ObjectBox
70%

Delete (1,000 docs)

Idris DB
94%
Hive
42%
SQLite
58%
ObjectBox
65%

Batch Insert

Idris DB
97%
Hive
40%
SQLite
50%
ObjectBox
75%

* Benchmark scores represent relative performance. Higher is better. Measured on Pixel 7 with 10,000 records.

Use Cases

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.

Real-timeOfflineEncryption

E-Commerce

Manage products, cart items, orders, and user preferences locally. Instant loading and smooth checkout experience.

Fast LookupIndexingTransactions

Task Management

Organize tasks, projects, and notes with powerful queries and sorting. Filter by status, date, or priority instantly.

FilteringSortingBatch Ops

Note-Taking Apps

Rich text storage with full-text search capabilities. Auto-save, tags, and categories with sub-ms retrieval.

Full-Text SearchAuto-SaveTags

Social Media

Cache user profiles, feeds, and interactions locally. Reduce API calls and provide instant content loading.

CachingWatchersProfiles

Fitness & Health

Track workouts, nutrition, and health metrics with precise time-series data storage and fast aggregations.

Time-SeriesAggregationPrivacy
Compare

How Does Idris DB Stack Up?

A side-by-side feature comparison with popular Flutter database solutions.

Feature
Idris DB
Hive
SQLite
ObjectBox
Performance
★★★★★
★★★☆☆
★★★☆☆
★★★★☆
Type Safety
Code Generation
Offline First
ACID Transactions
Full-Text Search
Real-time Watchers
Query Analyzer
Arabic Support
Enhanced Errors
Smart Logging
Cross Platform
All 6
All 6
All 6
5/6

Comparison based on publicly available documentation as of 2025. Idris DB includes all Isar features plus exclusive enhancements.

Migration

Migrate from Isar in Minutes

Migrate in under 5 minutes. Your existing schemas and data stay compatible. Just swap the package.

1

Update pubspec.yaml

Replace Isar packages with Idris DB equivalents

Isar (Before)
dependencies:
  isar: ^3.1.0
  isar_flutter_libs: ^3.1.0  # Remove
  isar_generator: ^3.1.0      # → idris_db_generator
Idris DB (After)
dependencies:
  idris_db: ^1.0.5

dev_dependencies:
  idris_db_generator: ^1.0.5
  build_runner: ^2.4.0
2

Update Imports

Swap Isar imports for Idris DB

Isar (Before)
import 'package:isar/isar.dart';
import 'package:isar/annotations.dart';
Idris DB (After)
import 'package:idris_db/idris_db.dart';
// That's it! One import.
3

Open Database

Initialize Idris DB the same way you used Isar

Isar (Before)
final isar = await Isar.open(
  [UserSchema],
  directory: dir,
);
Idris DB (After)
final idrisDb = await IdrisDb.open(
  [UserSchema],
);
// Optional: Enable Arabic error messages
IdrisDbEnhancedError.language = 'ar';
4

Done! Start Coding

Your existing code works. Plus you get new tools.

Isar (Before)
// Your existing Isar code works as-is
await isar.users.put(user);
final users = await isar.users.where()
    .findAll();
Idris DB (After)
// 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.

API Explorer

Methods at a Glance

Quick reference for the most commonly used Idris DB methods. Click any method to see the code.

put()Write

Insert or update a single object

Future<Id> put(T object)

putAll()Write

Insert or update multiple objects in a batch

Future<List<Id>> putAll(List<T> objects)

get()Read

Get a single object by its ID

Future<T?> get(Id id)

getAll()Read

Get all objects in a collection

Future<List<T>> where().findAll()

delete()Delete

Delete a single object by its ID

Future<bool> delete(Id id)

where()Query

Create a query builder for filtering

QueryBuilder<T> where()

watch()Reactive

Watch a collection for real-time changes

Stream<List<T>> watch()

writeTxn()Transaction

Execute operations in an atomic transaction

Future<T> writeTxn<T>(Future<T> fn())

Roadmap

What's Coming Next

Idris DB is actively developed with regular updates. Here's a look at our development timeline.

Currentv1.0
  • 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
Q2 2025v1.1
  • Data Validation Framework
  • Backup & Restore tools
  • Query result caching
  • Real-time database stats
  • Development mode with debugging
Q3 2025v1.5
  • Export/Import tools (JSON & CSV)
  • Visual database inspector
  • Migration management system
  • Encryption at rest
Q4 2025v2.0
  • Cloud sync integration
  • Multi-collection joins
  • GraphQL adapter
  • Desktop app for management
2026v3.0
  • Distributed database support
  • AI-powered query optimization
  • Plugin ecosystem
  • And 40+ more features
Changelog

Version History

Every improvement, every fix. Track the evolution of Idris DB.

v1.0.5Patch
May 2025
  • Improved Query Analyzer accuracy
  • Added Arabic auto-detection for device locale
  • Fixed edge case in transaction rollback
  • Updated documentation with new examples
v1.0.3Patch
April 2025
  • Added multi-language logging support
  • Fixed batch operation memory leak
  • Enhanced code generation reliability
v1.0.2Minor
April 2025
  • New Query Analyzer feature
  • Improved error hint suggestions
  • Performance optimization for large collections
v1.0.0Major
March 2025
  • Initial release
  • Full Isar compatibility
  • Enhanced error messages (EN/AR)
  • Smart logging system
  • Cross-platform support (6 platforms)
Security

Your Data, Protected

Security is not an afterthought. Idris DB provides multiple layers of protection for your sensitive data.

Enterprise-Grade

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.

Privacy

AES-256 Encryption

Industry-standard encryption for your entire database or individual collections. Your data stays private.

Control

Access Control

Secure database access with configurable permissions. Control who can read, write, and modify data.

Reliability

Data Integrity

ACID transactions guarantee your data is never corrupted. Atomic commits and rollbacks protect every operation.

Offline

On-Device Storage

All data stays on the device. No server communication, no data leaks. Perfect for sensitive applications.

Compliance

Audit Logging

Comprehensive logging tracks every database operation. Full transparency for compliance and debugging.

Trust

Zero-Knowledge

Idris DB never phones home. No analytics, no tracking, no telemetry. Your data is truly yours.

Try It Live

Interactive Playground

See Idris DB in action. Select an example, hit run, and watch the output appear in real-time.

create_&_query_users.dart
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();
Output
idle
Click "Run Code" to see the output here...
Performance

Built for Speed

Every millisecond counts. Idris DB is optimized for lightning-fast data operations.

98
Lighthouse Score/100
0.4
First Paints
45
Bundle SizeKB
0.02
Query Speedms
Built With

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

FAQ

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.

The Creator

Meet Idris Ghamid

The mind behind Idris DB — a solo engineer building world-class developer tools for the Flutter ecosystem.

IDRISIUM
Idris Ghamid

Idris Ghamid

Founder & Software Architect

IDRISIUMIDRISIUM Corp

About

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.

Focus

Flutter & Dart
Database Engineering
Open Source Advocate
Bilingual (EN/AR)