Localstore

pub package

Between SQL or NoSQL, there's no one best database, there's the right database for your specific project. Localstore is a JSON file-based storage package (localstorage) provides a persistent repository for simple NoSQL database.

Localstore (NoSQL) SQLite (SQL)
Data format File path (collection) Table
Data item JSON Document (doc) Record / Row
Scalability Horizontal Limited vertical
Organization Schema-less Fixed schema

Demo Screenshot

UML diagram

Localstore UML diagram

Getting Started

  1. Calling WidgetsFlutterBinding.ensureInitialized(); in main() before calling runApp():
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MyApp());
}
  1. Import import 'package:localstore/localstore.dart';
import 'package:flutter/material.dart';
import 'package:localstore/localstore.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MyApp());
}
  1. Creates an instance using the default Localstore
final db = Localstore.instance;

or using anywhere in your project.

  1. Creates new item
// gets new id
final id = db.collection('todos').doc().id;

// save the item
db.collection('todos').doc(id).set({
  'title': 'Todo title',
  'done': false
});
  1. Gets item by id
final data = await db.collection('todos').doc(id).get();
  1. Delete item by id
db.collection('todos').doc(id).delete();
  1. Fetch the documents for the collection
final items = await db.collection('todos').get();
  1. Using stream
final stream = db.collection('todos').stream;

Features and bugs

Please file feature requests and bugs at the issue tracker.

Libraries

localstore
Localstore library