instantdb_flutter 0.1.1 copy "instantdb_flutter: ^0.1.1" to clipboard
instantdb_flutter: ^0.1.1 copied to clipboard

A real-time, offline-first database client for Flutter with reactive bindings.

0.1.1 #

๐Ÿ”ง Fixes #

0.2.0 (Unreleased) #

๐Ÿš€ Major Features - React/JS SDK Feature Parity #

New Transaction System (tx namespace)

  • โœ… Added fluent tx namespace API for cleaner transactions (db.tx['entity'][id].update({}))
  • โœ… Implemented transactChunk() method for transaction chunks
  • โœ… Added merge() operation for deep nested object updates
  • โœ… Added link() and unlink() operations for entity relationships
  • โœ… Implemented lookup() references to reference entities by attributes instead of IDs

Advanced Query Operators

  • โœ… Added comparison operators: $gt, $gte, $lt, $lte, $ne
  • โœ… Added string pattern matching: $like, $ilike with wildcard support
  • โœ… Added array operations: $contains, $size, $in, $nin
  • โœ… Added existence operators: $exists, $isNull
  • โœ… Enhanced logical operators: improved $and, $or, $not support

Room-based Presence System

  • โœ… Added joinRoom() API returning scoped InstantRoom instances
  • โœ… Implemented room-specific presence operations (scoped to individual rooms)
  • โœ… Added topic-based pub/sub messaging with publishTopic() and subscribeTopic()
  • โœ… Complete room isolation - presence data separated between rooms
  • โœ… Backward compatible with existing direct room ID APIs

API Improvements

  • โœ… Added subscribeQuery() alias for reactive queries (matches React SDK)
  • โœ… Implemented queryOnce() for one-time query execution
  • โœ… Added getAuth() and subscribeAuth() convenience methods
  • โœ… Improved error handling and validation

๐Ÿงช Testing & Quality #

  • โœ… 150 total tests passing (up from 118 tests)
  • โœ… Added comprehensive test suite for all new features
  • โœ… Performance testing for large datasets and query caching
  • โœ… Room-based presence system testing with isolation validation

๐Ÿ› Bug Fixes & Performance Improvements #

  • โœ… Fixed transaction conversion for real-time sync - transactions now properly convert to tx-steps with actual data instead of sending 0 steps
  • โœ… Fixed duplicate entity issue during sync - implemented deduplication logic to prevent locally-created entities from being re-applied during refresh-ok
  • โœ… Fixed entity type resolution during sync - entities from server now properly stored with correct type (e.g., todos:id instead of unknown:id)
  • โœ… Fixed delete synchronization between instances - implemented differential sync to detect and apply deletions when entities are missing from server responses, including handling empty entity lists
  • โœ… Fixed presence reactions not appearing in peer instances - implemented proper refresh-presence message handling to convert reaction data to visible UI reactions
  • โœ… Fixed cursors, typing indicators, and avatars not working in peer instances - implemented complete presence data detection and routing in refresh-presence messages to handle all presence types
  • โœ… Fixed avatars page showing only 1 user instead of both users - preserved local user's presence when processing refresh-presence messages to match React SDK behavior
  • โœ… Fixed avatar presence data extraction and room ID consistency - corrected nested data structure extraction from refresh-presence messages and unified room key format usage
  • โœ… Fixed typing indicators showing 'Someone' instead of actual user names - updated typing page to set initial presence with userName and display actual user names in typing indicators
  • โœ… Added comprehensive hierarchical logging system - using logging package for better debugging and monitoring of sync operations
  • โœ… Enhanced sync engine with proper attribute UUID mapping - transactions now use correct InstantDB attribute UUIDs instead of attribute names

๐Ÿ“– Documentation #

  • โœ… Updated README with all new APIs and examples
  • โœ… Created ADVANCED_FEATURES.md comprehensive feature guide
  • โœ… Added MIGRATION_GUIDE.md for upgrading existing code
  • โœ… Updated example applications showcasing new room-based presence APIs

๐Ÿ“ฑ Example Applications Updated #

  • โœ… Cursors demo updated to use room-based presence API
  • โœ… Reactions demo updated with room-scoped reactions
  • โœ… Typing indicators demo updated with room-scoped typing
  • โœ… Avatars demo updated with room-scoped presence
  • โœ… Todos demo updated to showcase new tx namespace API

๐Ÿ”ง Breaking Changes #

None! This release is fully backward compatible. All existing APIs continue to work.

๐ŸŽฏ Migration Path #

  • Immediate: New projects can use new APIs from day one
  • Gradual: Existing projects can migrate incrementally at their own pace
  • Optional: Migration provides better performance and developer experience but is not required

0.1.0 #

๐ŸŽ‰ Initial Release #

Core Features

  • โœ… Real-time synchronization with InstantDB backend
  • โœ… Offline-first local storage with SQLite triple store
  • โœ… Reactive UI updates using Signals
  • โœ… InstaQL query language support
  • โœ… Transaction system with optimistic updates
  • โœ… Authentication system integration
  • โœ… Schema validation and type safety

Flutter Integration

  • โœ… InstantProvider for dependency injection
  • โœ… InstantBuilder and InstantBuilderTyped reactive widgets
  • โœ… AuthBuilder for authentication state management
  • โœ… Watch widget for reactive UI updates
  • โœ… ConnectionStatusBuilder for network status

Presence System

  • โœ… Real-time cursor tracking
  • โœ… Typing indicators
  • โœ… Emoji reactions
  • โœ… User presence status
  • โœ… Room-based collaboration features

Developer Experience

  • โœ… Comprehensive example application
  • โœ… Full test coverage
  • โœ… TypeScript-style API design
  • โœ… Hot reload support
  • โœ… Debug tooling integration

0.0.1 #

  • Initial development release with basic InstantDB integration
7
likes
0
points
627
downloads

Publisher

unverified uploader

Weekly Downloads

A real-time, offline-first database client for Flutter with reactive bindings.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

crypto, dio, flutter, flutter_dotenv, json_annotation, logging, path, signals_flutter, sqflite, sqflite_common_ffi_web, uuid, web_socket_channel

More

Packages that depend on instantdb_flutter