offline_sync_outbox 1.0.1 copy "offline_sync_outbox: ^1.0.1" to clipboard
offline_sync_outbox: ^1.0.1 copied to clipboard

A lightweight offline-first FIFO sync queue with durable storage, connectivity triggers, and configurable retry policies for Dart and Flutter.

example/offline_sync_outbox_example.dart

import 'dart:io';

import 'package:offline_sync_outbox/offline_sync_outbox.dart';

Future<void> main() async {
  final directory = await Directory.systemTemp.createTemp('offline_sync_demo_');
  final queuePath =
      '${directory.path}${Platform.pathSeparator}offline-queue.json';
  final connectivity = ManualSyncConnectivity(isOnline: false);

  final manager = OfflineSyncManager(
    store: JsonFileSyncStore(queuePath),
    connectivity: connectivity,
    autoSync: false,
    processor: (operation) async {
      stdout.writeln(
        'Uploading ${operation.action}: ${operation.payload}',
      );
      return const SyncResult.success();
    },
  );

  await manager.initialize();
  await manager.enqueue(
    action: 'create_note',
    payload: <String, Object?>{'text': 'Written while offline'},
  );

  final offlineReport = await manager.synchronize();
  stdout.writeln('Pending while offline: ${offlineReport.pending}');

  connectivity.setOnline(true);
  final onlineReport = await manager.synchronize();
  stdout.writeln('Uploaded: ${onlineReport.succeeded}');

  await manager.dispose();
  await directory.delete(recursive: true);
}
0
likes
160
points
119
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A lightweight offline-first FIFO sync queue with durable storage, connectivity triggers, and configurable retry policies for Dart and Flutter.

Repository (GitHub)
View/report issues
Contributing

Topics

#offline-first #synchronization #queue #retry #flutter

License

MIT (license)

More

Packages that depend on offline_sync_outbox