cloud_sync_hive_adapter 0.0.1 copy "cloud_sync_hive_adapter: ^0.0.1" to clipboard
cloud_sync_hive_adapter: ^0.0.1 copied to clipboard

A Flutter plugin for integrating Hive sync functionality.

CloudSyncHiveAdapter #

A Hive-powered implementation of the SyncAdapter from the cloud_sync package.

This adapter enables fast, offline-first local persistence of metadata and content using Hive. Great for syncing notes, logs, or custom data structures locally with cloud fallback support.


✨ Features #

  • πŸ’Ύ Stores metadata (SyncMetadata) and detailed content (String) using Hive.
  • ⚑ Fast and efficient with Hive's key-value storage.
  • πŸ”„ Compatible with cloud_sync for hybrid local/cloud sync.
  • πŸ“΄ Fully offline-capable β€” ideal for mobile, embedded, or disconnected use cases.

πŸ“¦ Installation #

Add dependencies to your pubspec.yaml:

dependencies:
  hive_ce: ^latest
  cloud_sync: ^latest
  cloud_sync_hive_adapter: ^latest

βœ… Make sure you initialize Hive and register any needed adapters before use.


πŸš€ Usage Example #

import 'dart:convert';
import 'package:hive_ce/hive.dart';
import 'package:cloud_sync_hive_adapter/cloud_sync_hive_adapter.dart';
import 'your_models/my_metadata.dart'; // Define your SyncMetadata model

void main() async {
  await Hive.initFlutter(); // or Hive.init('path')

  // Optionally register your custom metadata adapter, if needed
  // Hive.registerAdapter(MyMetadataAdapter());

  final metadataBox = await Hive.openBox<String>('metadataBox');
  final detailBox = await Hive.openLazyBox<String>('detailBox');

  final adapter = CloudSyncHiveAdapter<MyMetadata>(
    metadataBox: metadataBox,
    detailBox: detailBox,
    metadataToJson: (meta) => jsonEncode(meta.toJson()),
    metadataFromJson: (json) => MyMetadata.fromJson(jsonDecode(json)),
    getMetadataId: (meta) => meta.id,
    isCurrentMetadataBeforeOther: (a, b) => a.updatedAt.isBefore(b.updatedAt),
  );

  // Use with CloudSync:
  // final cloudSync = CloudSync(adapter: adapter);
}

🧱 Class Overview #

class CloudSyncHiveAdapter<M extends SyncMetadata>
  extends SerializableSyncAdapter<M, String>

πŸ”§ Constructor Parameters #

Parameter Description
metadataBox Box<String> for serialized metadata (JSON).
detailBox LazyBox<String> for detailed string content.
metadataToJson Converts metadata to JSON String.
metadataFromJson Parses JSON String into metadata.
getMetadataId Returns the unique ID for a metadata object.
isCurrentMetadataBeforeOther Compares metadata objects for version ordering (e.g., by updatedAt).

βœ… When to Use #

  • πŸ“² Need fast, reliable local sync for mobile or desktop.
  • πŸ“΄ Want offline-first functionality for notes, logs, tasks, etc.
  • 🌩️ Plan to combine Hive storage with cloud sync (e.g., Google Drive or Firebase).
  • πŸ§ͺ Prototyping or testing sync logic locally.

⚠️ Notes #

  • Store only String data in Hive boxes with this adapter.
  • For complex object storage, use Hive’s custom type adapters directly or extend the adapter.
  • Avoid storing large binary data β€” Hive is optimized for structured key-value data.

  • cloud_sync – Sync core and abstraction layer.
  • hive_ce – Lightweight, blazing-fast NoSQL database for Flutter/Dart.

πŸ“„ License #

MIT (or your project’s license).

1
likes
160
points
91
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for integrating Hive sync functionality.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

cloud_sync, hive_ce

More

Packages that depend on cloud_sync_hive_adapter