local_first 0.8.0 copy "local_first: ^0.8.0" to clipboard
local_first: ^0.8.0 copied to clipboard

Local-first solution 100% self hosted, for offline and live data sync between multiple devices with support for Hive, SQLite, websockets, etc.

0.8.0 #

  • Added backup & restore system with BackupService, BackupData, BackupStorageProvider interface, and AES-256 + gzip encryption pipeline.
  • Added local_first_firebase_backup, local_first_gdrive_backup, and local_first_icloud_backup companion packages.
  • Added configurable logger system (LocalFirstLogger) for all plugins with adjustable log levels.
  • Added repository filtering to sync strategies via onBuildSyncFilter callback.
  • Fixed DateTime serialization to ISO 8601 string in LocalFirstEvent.toJson().
  • Fixed orphaned events being deserialized in getAllEvents, preventing runtime errors.
  • Fixed server event field name alignment with client convention.

⚠️ Breaking change — event metadata field rename #

All internal event metadata keys now use a _ prefix to prevent collision with your entity fields (e.g. a user.created_at field no longer conflicts with the event's own _created_at).

If you store or transmit raw event maps (e.g. via a custom sync backend or direct storage queries), update your field references:

Before After
eventId _event_id
repository _repository
operation _operation
createdAt _created_at
data _data
dataId _data_id
syncStatus _sync_status
lastEventId _last_event_id

The Dart constants (LocalFirstEvent.kEventId, kSyncCreatedAt, etc.) remain unchanged — only the string values they hold have changed. If you access event fields exclusively through these constants, no code changes are needed. A one-time database migration may be required if you have existing persisted events.

0.7.2 #

  • Updated README with absolute GitHub URLs for proper rendering on pub.dev
  • Added sync strategy packages to Installation section (periodic and websocket)
  • Reorganized Running examples section with storage adapters and sync strategies categories
  • Updated package versions in Installation documentation

0.7.1 #

  • Added chat app example with real-time messaging using dual sync strategy (WebSocket + Periodic)
  • Enhanced documentation with data flow diagram and fixed pub.dev package links
  • Improved code examples in README with corrected syntax and API usage
  • Tuned counter app sync intervals for better performance (60s heartbeat, 30s periodic)

0.7.0 #

  • Added comprehensive counter app example demonstrating real-time WebSocket synchronization
  • Improved test coverage and reliability across the framework
  • Enhanced documentation and code examples

0.6.0 #

  • Added local_first_shared_preferences adapter with namespaced config storage and example app.
  • Unified example apps across adapters and defaulted core example to in-memory storage.
  • Expanded documentation with supported config types tables, example run instructions, and contribution links.
  • Refined config storage APIs (optional delegate, namespace propagation) and achieved full test coverage.
  • Simplified remote pull API to make per-repository backend integrations easier.

0.5.0 #

  • Split storage adapters into separate publishable packages:
    • local_first_hive_storage for Hive-based storage
    • local_first_sqlite_storage for SQLite-based storage
  • Core package no longer bundles adapter implementations.
  • Documentation and tooling updated for addon packages.

0.4.0 #

  • Add SQLite storage adapter (SqliteLocalFirstStorage) with schema/index support and query filtering
  • Document how to choose between Hive and SQLite storage backends
  • Expand example tooling with launch configs and relational sample polish

0.3.0 #

  • Switch models to the LocalFirstModel mixin for direct field access without wrappers
  • Expand automated test suite to achieve full 100% test coverage of core flows and APIs
  • Refresh README roadmap/goals to reflect documentation and testing updates

0.2.0 #

  • Replace singleton LocalFirst with injectable LocalFirstClient
  • Standardize storage interface as LocalFirstStorage with Hive implementation
  • Repositories now carry serialization/conflict logic directly
  • Example app updated to new client/repository APIs and string-based metadata

0.0.1 #

  • Initial scaffolding
5
likes
160
points
155
downloads

Documentation

API reference

Publisher

verified publishercarda.me

Weekly Downloads

Local-first solution 100% self hosted, for offline and live data sync between multiple devices with support for Hive, SQLite, websockets, etc.

Repository (GitHub)
View/report issues
Contributing

Topics

#local-first #repository #sync #offline-first

License

MIT (license)

Dependencies

crypto, encrypt, flutter

More

Packages that depend on local_first