Skip to main content

Announcing QuantaDB Beta: A High-Performance Pure Dart Local Database

ยท 3 min read
Tushar Nikam
Creator of QuantaDB & Software Engineer @ Gojek

QuantaDB Logo

I'm excited to announce the beta release of QuantaDB, a high-performance NoSQL local database built entirely in Dart. After months of development and testing, we're ready to share this powerful database solution with the Dart and Flutter community.

Why QuantaDB?โ€‹

As a Flutter developer, I've often encountered limitations with existing local database solutions. Many options either had external dependencies, performance bottlenecks, or lacked modern features. This led me to create QuantaDB, a database that addresses these challenges while providing a developer-friendly experience.

Key Featuresโ€‹

๐Ÿš€ High Performanceโ€‹

QuantaDB implements a Log-Structured Merge Tree (LSM-Tree) storage engine from scratch in pure Dart. Our benchmarks show impressive results:

  • 10,000 write operations in just 30ms
  • 10,000 read operations in 9ms
  • Batch operations (1000 items) completed in 15ms

๐Ÿ”’ Data Securityโ€‹

Security is a top priority:

  • Built-in field-level encryption
  • Platform-specific secure storage
  • Access control lists
  • Runtime and compile-time validation

๐Ÿ“Š Advanced Featuresโ€‹

  • Real-time updates with reactive queries
  • Type safety with code generation
  • Cross-platform compatibility
  • Powerful query engine with filtering and sorting
  • ACID compliant transactions
  • Efficient handling of large datasets

Architectureโ€‹

QuantaDB is built with a layered architecture:

  1. Application Layer: Public API and code generation integration
  2. Core Engine Layer: Query processing and storage management
  3. Storage Layer: LSM-Tree implementation with MemTable and SSTables
  4. Platform Layer: File system interaction and background tasks

Getting Startedโ€‹

Adding QuantaDB to your project is straightforward:

dependencies:
quanta_db: ^0.0.5

Basic usage example:

import 'package:quanta_db/quanta_db.dart';

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

// Store data
await db.put('user:1', {
'name': 'John Doe',
'email': 'john@example.com'
});

// Retrieve data
final user = await db.get('user:1');
print('User: $user');

await db.close();
}

Performance Comparisonโ€‹

We've benchmarked QuantaDB against popular alternatives:

OperationQuantaDBHiveSQLite
Write30ms216ms3290ms
Read9ms8ms299ms
Batch15ms180ms2800ms

What's Next?โ€‹

While we're proud of what we've achieved, this is just the beginning. Our roadmap includes:

  1. Enhanced query capabilities
  2. More advanced indexing options
  3. Improved documentation and examples
  4. Community-driven feature development

Get Involvedโ€‹

We welcome contributions from the community! Whether you're interested in:

  • Testing and providing feedback
  • Contributing code
  • Improving documentation
  • Reporting issues

Visit our GitHub repository to get started.

Support and Resourcesโ€‹

Beta Statusโ€‹

Please note that QuantaDB is currently in beta. While we've thoroughly tested it, we recommend using it in development and testing environments first. Your feedback during this phase is invaluable for making QuantaDB even better.

Conclusionโ€‹

QuantaDB represents a significant step forward in local database solutions for Dart and Flutter applications. With its focus on performance, security, and developer experience, we believe it will become a valuable tool in your development toolkit.

Try it out, share your feedback, and join us in shaping the future of QuantaDB!


Tushar Nikam
Creator of QuantaDB & Software Engineer @ Gojek