cbl 0.4.1+1
cbl: ^0.4.1+1 copied to clipboard

CouchbaseLite for Dart based on the C API. A NoSQL database with change notification, full text search and replication.

Version License CI

cbl #

Warning: This project has not yet reached a stable production release.

Warning: This is not an official Couchbase product.

Features - Couchbase Lite #

  • Schemaless JSON documents
  • Binary JSON format (Fleece)
    • Reading without parsing
  • Blobs
    • A binary data value associated with a document
  • Queries
    • Supports large subset of N1QL query language
    • Machine readable representation of queries as JSON
    • Full text search
    • Indexes
    • Observable queries
  • Replication
    • Synchronize with Couchbase Server through Sync Gateway

Features - Dart API #

  • Calls Couchbase Lite C API through FFI
  • Expensive operations run in separate isolate
    • No blocking of calling isolate
  • Streams for event based APIs
  • Support for Flutter apps
  • Support for standalone Dart (for example a CLI)
  • Well documented

Installation #

This package only contains Dart code and requires binary libraries to be packaged with any app that wants to use it. For Flutter apps, you need to add cbl_flutter as a dependency to include those libraries in the build. cbl_flutter currently supports iOS, macOS and Android.

dependencies:
    cbl: ...
    cbl_flutter: ...

Getting started #

CouchbaseLite needs to be initialized with a configuration of how to load the binary libraries.

import 'package:cbl/cbl.dart';
import 'package:cbl_flutter/cbl_flutter.dart';

void initCbl() {
  CouchbaseLite.initialize(libraries: flutterLibraries());
}

Now you can use Database.open to open a database:

import 'package:cbl/cbl.dart';
import 'package:path_provider/path_provider.dart';

Future<void> openDatabase() async {
  final documentsDir = await getApplicationDocumentsDirectory();

  final db = await Database.open(
      'MyFirstDB',
      config: DatabaseConfiguration(directory: documentsDir.path),
  )

  final doc = MutableDocument()
    ..properties.addAll({
      'type': 'message',
      'body': 'Heyo',
      'from': 'Alice',
    });

  final savedDoc = await db.saveDocument(doc)
}
5
likes
120
pub points
54%
popularity

Publisher

gabriel.terwesten.net

CouchbaseLite for Dart based on the C API. A NoSQL database with change notification, full text search and replication.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

Apache 2.0 (LICENSE)

Dependencies

cbl_ffi, characters, collection, ffi, logging, meta, synchronized

More

Packages that depend on cbl