Skip to main content

Introduction

QuantaDB is a modern, high-performance NoSQL local database built entirely in Dart. It is designed to be a fast, reliable, and easy-to-use data storage solution for both Flutter applications and pure Dart projects.

Built from scratch with a focus on performance and developer experience, QuantaDB leverages a Log-Structured Merge Tree (LSM-Tree) storage engine and annotation-driven code generation.

Key Features ✨

  • High Performance: LSM-Tree based storage engine optimized for speed.
  • Scalable Architecture: Seamlessly handle growing amounts of data.
  • Flexible Data Model: Adapt to changing data structures easily.
  • Reliable and Durable: Ensuring data safety and availability.
  • Easy Integration: Effortlessly integrate with your applications.
  • Powerful Query Engine: Efficient data retrieval, filtering, and sorting.
  • Data Security: Built-in encryption support.
  • Advanced Indexing: Support for single and composite indexes.
  • Real-time Updates: Reactive queries with change notifications.
  • Type Safety: Strong typing with code generation.
  • Cross-Platform: Works on all platforms supported by Dart/Flutter.
  • Developer Experience: Annotation-driven code generation.

Why Choose QuantaDB?

QuantaDB aims to overcome the limitations of existing local databases by providing a pure Dart implementation with a high-performance LSM-Tree engine. Our goals are to offer competitive read/write performance, a simple API, data durability, support for complex data models, and a reactive query system.

Performance

QuantaDB is designed for speed. Benchmarks show significantly faster performance compared to other popular Dart/Flutter local databases, especially for write operations. Check out the benchmark code on GitHub.

Architecture

QuantaDB features a layered architecture with the core LSM-Tree storage engine. Learn more about the architecture on GitHub.

Getting Started

To start using QuantaDB, add the dependency to your pubspec.yaml file:

dependencies:
quanta_db: ^0.0.5 # Use the latest version

Then, run dart pub get or flutter pub get.

Import the package and open your database:

import 'package:quanta_db/quanta_db.dart';

void main() async {
// Open the database
final db = await QuantaDB.open('my_database');

// Use the database...

// Close the database when done
await db.close();
}

QuantaDB automatically handles platform-specific secure directory management.

Contributing and Support

We welcome contributions! Please see the CONTRIBUTING.md for details.

If you need help, check the Issue Tracker or Discussions on GitHub.