Search packages, repositories and app categories

Package detailsv1.4.0

localstore

A JSON file-based storage package provides a persistent repository for simple NoSQL database.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
4K
Likes
194
Pub points
140

Install package

flutter pub add localstore

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

LocalStore is a Flutter/Dart package that offers persistent, file-based JSON storage, functioning as a simple NoSQL database. It enables apps to store and retrieve structured data locally across multiple platforms, including Android, iOS, Web, macOS, Windows, and Linux. Designed for lightweight use cases, it stores data in a single JSON file, making it easy to manage and access without complex setup. Ideal for saving user preferences, cached data, or small datasets that need to persist between app sessions.

Use cases

  • Storing user preferences
  • Caching API responses
  • Saving app state
  • Managing local configuration
  • Persisting small datasets

Key features

  • File-based JSON storage
  • Cross-platform support
  • Simple key-value interface
  • Automatic serialization/deserialization
  • Lightweight and fast

Suitable for

  • Simple data persistence
  • Offline-first applications
  • Prototyping
  • Small-scale apps
  • Developer convenience

Considerations

  • Not suitable for large datasets
  • No built-in query capabilities
  • Limited to JSON format
  • Manual backup required
  • Performance may degrade with large files

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

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.

Categories

Dependencies

Dependency list 2 items

Source repository

Projects using this package

No data available yet.