Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mainser/cindel/llms.txt

Use this file to discover all available pages before exploring further.

Cindel is a local database built for Flutter and Dart. Annotate your model classes and run the code generator — Cindel produces fully typed collection getters, typed where() and filter() query builders, and schema serializers. Your app never touches raw documents or SQL; it just calls db.users.put(user) and db.users.filter().activeEqualTo(true).findAll().

Quickstart

Get a working Cindel database running in your Flutter app in minutes.

Installation

Add the required packages and configure your build setup.

Models & Schemas

Learn how to annotate Dart classes and run the code generator.

API Reference

Full reference for every public class, method, and annotation.

Why Cindel

Cindel combines a Rust native core with a generated Dart API so you get near-native performance and full type safety in the same package. MDBX is the default backend on mobile and desktop; SQLite Web/OPFS powers Flutter Web — and both backends speak the same generated typed API.

Generated Queries

Type-safe where() and filter() helpers generated from your model fields. No raw queries or string column names.

Reactive Watchers

Subscribe to object, collection, or query changes as Dart streams. Watchers fire only after write transactions commit.

Migrations

Versioned open-time migrations with export/import helpers, schema registration, and automatic backend compaction.

MDBX Default

MDBX provides sub-millisecond reads and writes for typical Flutter workloads. Switch to SQLite with one flag.

Flutter Web

Experimental SQLite/OPFS Worker + Wasm backend. Same typed API, same generated code — no browser-specific branches.

Local-First Sync

Experimental sync with a durable internal outbox and a backend-neutral adapter contract you implement.

Get Started

1

Add dependencies

Add cindel, cindel_flutter_libs, and cindel_generator to your pubspec.yaml.
2

Annotate a model

Mark a Dart class with @Collection and its fields with @Index where needed.
3

Run the generator

Run dart run build_runner build --delete-conflicting-outputs to produce typed schemas and query helpers.
4

Open and use

Call Cindel.open(directory: path, schemas: [UserSchema]) and start reading and writing typed objects.
Cindel is pre-1.0. The public API surface is stabilizing around generated typed collections and the open-time configuration model. See the Roadmap for the current focus.

Build docs developers (and LLMs) love