Announcing QuantaDB Beta: A High-Performance Pure Dart Local Database
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:
- Application Layer: Public API and code generation integration
- Core Engine Layer: Query processing and storage management
- Storage Layer: LSM-Tree implementation with MemTable and SSTables
- 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:
Operation | QuantaDB | Hive | SQLite |
---|---|---|---|
Write | 30ms | 216ms | 3290ms |
Read | 9ms | 8ms | 299ms |
Batch | 15ms | 180ms | 2800ms |
What's Next?โ
While we're proud of what we've achieved, this is just the beginning. Our roadmap includes:
- Enhanced query capabilities
- More advanced indexing options
- Improved documentation and examples
- 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โ
- ๐ Documentation
- ๐ก Discussions
- ๐ Issue Tracker
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