PackageTrack
Sign in Get early access

openim_sdk

An instant messaging plug-in that supports Android and IOS. And the server is also all open source.

2.5.2 13K downloads/mo #2629 most downloaded on pub.dev Matkurban/openim_sdk

What this package is like to depend on

Last release 25 days ago

29 Jul 2026

Release timing varies

gaps range from 8 days to 2 months

Some releases are documented

notes for 16 of 64 stable releases

Nothing withdrawn

no release was ever pulled

5 months old

64 releases · first in 2026

64 releases in the last 12 months

see the full history below

Release timeline

64 releases · Mar 2026 to Jul 2026
Release Pre-release

Releases

latest 60 of 64
  1. 2.5.2 29 Jul 2026
    Release notes

    Bug Fixes

    • 修复 pub.dev 平台得分(支持 Android、iOS、Web、Windows、macOS、Linux 全部 6 大平台)
    • 隔离 Web 与 Native 平台的条件导入,解决 dart:iodart:js_interop 的静态检测冲突
    • pubspec.yaml 中添加显式 platforms 声明并修复依赖约束
    Open source →
  2. 2.5.1 04 Jun 2026
    Release notes

    2.5.1 (2026-06-04)

    Bug Fixes

    • remove unused synchronized dependency from pubspec.yaml (cf23214)
    Open source →
    Release notes

    Bug Fixes

    • remove unused synchronized dependency from pubspec.yaml (cf23214)
    Open source →
  3. 2.5.0 04 May 2026
    Release notes

    2.5.0 (2026-05-04)

    Features

    • 升级tostore 的版本到 3.1.2,以修复在 Linux 中闪退的问题 (ae11d25)
    Open source →
    Release notes

    Features

    • 升级tostore 的版本到 3.1.2,以修复在 Linux 中闪退的问题 (ae11d25)
    Open source →
  4. 2.4.2 01 May 2026
    Release notes

    2.4.2 (2026-05-01)

    Bug Fixes

    • 优化未读消息计数逻辑并统一触发未读总数变更 (0dd3fab)
    Open source →
    Release notes

    Bug Fixes

    • 优化未读消息计数逻辑并统一触发未读总数变更 (0dd3fab)
    Open source →
  5. 2.4.1 01 May 2026
    Release notes

    2.4.1 (2026-05-01)

    Bug Fixes

    • 优化未读消息计数逻辑并统一触发未读总数变更 (4269f9a)
    • 移除未使用的 getAtAllTag 方法并更新依赖版本 (83f13af)
    Open source →
    Release notes

    Bug Fixes

    • 优化未读消息计数逻辑并统一触发未读总数变更 (4269f9a)
    • 移除未使用的 getAtAllTag 方法并更新依赖版本 (df6d553)
    Open source →
  6. 2.4.0 26 Apr 2026
    Release notes

    2.4.0 (2026-04-26)

    Features

    Bug Fixes

    Open source →
    Release notes

    Features

    Bug Fixes

    Open source →
  7. 2.3.0 26 Apr 2026
    Release notes

    2.3.0 (2026-04-26)

    Features

    • 修复搜索不准确问题 (8d96fc5)
    Open source →
    Release notes

    Features

    • 修复搜索不准确问题 (8d96fc5)
    Open source →
  8. 2.2.1 20 Apr 2026
    Release notes

    2.2.1 (2026-04-20)

    Bug Fixes

    • the problem that the token field in the CallSession class is missed during serialization (147b445)
    Open source →
    Release notes

    Bug Fixes

    • the problem that the token field in the CallSession class is missed during serialization (147b445)
    Open source →
  9. 2.2.0 20 Apr 2026
    Release notes

    2.2.0 (2026-04-20)

    Features

    • 🚀 Cross-platform multithreading via isolate_manager (be079fc)

    Open source →
    Release notes

    Features

    🚀 Cross-platform multithreading via isolate_manager

    • Migrate all CPU-bound helpers (computeMd5, computePartMd5s, computeCombinedMd5, computeImageDimensions, computeImageDimensionsFromFile, computeSearchFilter, computeHistoryFilter, readFilePart) from Flutter compute() to the isolate_manager: ^6.3.2 plugin. On Web they now run in a real JS Web Worker via the generated $shared_worker.js; on native they continue running in VM Isolates. Public API signatures are unchanged.
    • Split worker functions into a Flutter-free file (lib/src/utils/sdk_isolate_workers_core.dart) so dart2js can compile them. A companion native-only file (lib/src/utils/sdk_isolate_workers_io.dart) handles dart:io-based workers (file chunking).
    • New coordinator SdkWorkers (lib/src/isolate/sdk_workers.dart) manages the shared worker lifecycle and registers function → worker-name mappings.
    • SdkMethodCall / SdkMethodResult / SdkListenerEvent now carry toMap / fromMap and a type-tagged envelope so the L1 background-Isolate protocol is fully Map-based (future-proof for any transport).
    • Web build requires consumers to run dart run isolate_manager:generate --shared once to produce web/$shared_worker.js (see README for details). The example app ships the pre-built file.
    • L1 big-SDK-Isolate (SdkIsolateManager) keeps using dart:isolate internally because isolate_manager's request-response compute() model cannot receive push listener events while idle; the public API (initialize / isActive / invoke / events / dispose) is unchanged.
    Open source →
  10. 2.1.0 19 Apr 2026
    Release notes

    2.1.0 (2026-04-19)

    Features

    • 添加 runInDatabase 方法,可以在数据库实例中运行自定义的查询修改。 (a247276)
    Open source →
    Release notes

    Features

    • 添加 runInDatabase 方法,可以在数据库实例中运行自定义的查询修改。 (a247276)
    Open source →
  11. 2.0.2 17 Apr 2026
    Release notes

    2.0.2 (2026-04-17)

    Bug Fixes

    Open source →
    Release notes

    Bug Fixes

    Open source →
  12. 2.0.1 08 Apr 2026
    Release notes

    Bug Fixes

    • 修复文档发布 2.0.0版本 (8536303)
    Open source →
  13. 1.9.1 02 Apr 2026
    Release notes
    • add updateNote method in FavoriteManager to update note content and refresh favorite item.
    Open source →
  14. 1.9.0 02 Apr 2026
    Release notes

    🚀 Background Isolate Architecture

    All SDK Future methods (~160 methods across 10 managers) now run in a dedicated background Isolate, keeping the UI thread completely free from database I/O, network serialization, and protobuf parsing.

    • New Isolate infrastructure — Added 4 core files:
      • SdkIsolateManager — Singleton lifecycle manager, gates Isolate vs local execution via isActive
      • SdkIsolateEntry — Background Isolate entry point, receives (RootIsolateToken, SendPort) tuple
      • SdkMethodDispatcher — 1400+ line switch-based dispatcher routing all 10 managers' methods
      • SdkIsolateProtocol — Request/response envelope types for cross-Isolate communication
    • All 10 managers proxied — IMManager, ConversationManager, MessageManager, GroupManager, UserManager, FriendshipManager, MomentsManager, FavoriteManager, CallManager, RedPacketManager
    • Listener event forwarding — All listener callbacks (connect, message, conversation, group, friendship, user, moments, favorite, call, red packet, custom business, upload progress) are serialized across the Isolate boundary and re-dispatched on the main Isolate
    • Transparent activation — Call SdkIsolateManager.initialize() before initSDK to enable; omit it to run entirely on the main thread as before

    🐛 Bug Fixes

    • Fixed isInitialized always returning false in Isolate mode — Added _initialized field to track state across Isolate boundary
    • Fixed .toJson() serialization crashes — Manually fixed 55 nested .toJson() calls across 4 .g.dart files where generated code produced incorrect output
    • Fixed _currentUserID LateInitializationError — All 5 login paths (login, loginByEmail, loginByPhone, loginByAccount, loadLoginConfig) now properly initialize _currentUserID on every manager via _setManagersUserID()
    • Fixed infinite Isolate recursion — Background Isolate no longer recursively spawns itself when SdkIsolateManager.isActive is true inside the Isolate
    • Fixed BackgroundIsolateBinaryMessenger crash — Platform channel calls (path_provider) are resolved on the main Isolate before entering the background Isolate
    • Fixed duplicate ToStore registration — Removed getDatabaseInstance() as public API, added KV proxy methods (getValue/setValue/removeValue/getSpaceInfo) through the Isolate boundary
    • Fixed video message display issues — Video messages now show thumbnails and play correctly:
      • Changed enableHardwareAcceleration to true on non-Linux platforms (fixes mpv software renderer crash)
      • Fixed createSnapshot to reliably capture first frame by playing with volume 0 and waiting for stream dimensions
      • Added try-catch to video upload branch in _handleMediaUploadIfNeeded
    • Fixed build.yaml — Changed from wildcard generate_for to explicit file list to work with analyzer 10.0.0

    📦 New Models

    • CallSession — Call session model with toJson()/fromJson() support
    • MomentCreateReq — Moment creation request model with toJson()/fromJson() support
    • Added fromJson factories to SendRedPacketRequest, RedPacketDetail, and PointsTransaction
    Open source →
  15. 1.8.2 30 Mar 2026

    Nothing published for this version

  16. 1.8.1 30 Mar 2026

    Nothing published for this version

  17. 1.8.0 30 Mar 2026

    Nothing published for this version

  18. 1.7.9 30 Mar 2026

    Nothing published for this version

  19. 1.7.8 30 Mar 2026

    Nothing published for this version

  20. 1.7.7 30 Mar 2026
    Release notes
    • add changePassword and resetPassword method.
    • update tostore version
    Open source →
  21. 1.7.6 29 Mar 2026
    Release notes
    • Red packet grab notification refactored: BusinessNotification → real IM custom message: Grab notifications are no longer pushed as BusinessNotification "phantom messages". The backend now sends a real IM custom message (contentType=110, description="redPacketGrabNotify") into the conversation after a successful grab, appearing as a visible grab-notification bar in chat history.
    • Added RedPacketGrabNotifyMessageData model: Parses the server-sent grab notification message, containing packetID, grabberID, grabberName, grabberFaceURL, senderID, senderName, amount fields.
    • Removed RedPacketGrabbedNotify model: Previously used for BusinessNotification-based grab events, now replaced by RedPacketGrabNotifyMessageData.
    • Simplified OnRedPacketListener: Removed onRedPacketGrabbed callback; only onRedPacketExpired and onPointsBalanceChanged remain.
    • Simplified RedPacketManager.dispatchBusinessNotification: Removed red_packet_grabbed branch; only red_packet_expired and points_adjusted handling remains.
    • Red packet & points system: Added RedPacketManager, encapsulating send/grab/detail APIs and points balance queries.
    • Model expansion: RedPacketGrabInfo / RedPacketDetail / RedPacketGrabbedNotify gained nickname and faceURL fields, including user avatar info in grab records.
    • IMManager integration: redPacketManager added as a standard field in IMManager, consistent with other managers; onPointsBalanceChanged callback fires automatically on balance changes.
    • Refactor: Removed OpenIM.redPacketManager shortcut, unified to OpenIM.iMManager.redPacketManager.
    • Offline message pull: N per-message callbacks → 1 batch callback (msg_syncer.dart, message_manager.dart, advanced_msg_listener.dart): Aligned with Go SDK batchNewMessages design: _processPulledMsgs no longer triggers onRecvOfflineNewMessage for each message in the same conversation one by one, now fires the new onRecvOfflineNewMessages(List<Message>) batch callback in a single call.
    • Empty senderNickname in search results (notification_dispatcher.dart, msg_syncer.dart, user_manager.dart, database_service.dart): Aligned with Go SDK UpdateMsgSenderFaceURLAndSenderNickname: when the user's own info (nickname/avatar) changes, retroactively updates senderNickname/senderFaceUrl for all messages in the local database.
    • WebSocket push messages not storing senderFaceUrl (_msgDataToMap in msg_syncer.dart): Map key used 'senderFaceURL' (uppercase L) which mismatched the DB column senderFaceUrl (lowercase l), preventing avatar URLs from being written to the database. Fix: changed key to 'senderFaceUrl' to align with DB schema.
    • Incorrect searchLocalMessages results (_searchFilterWorker in sdk_isolate.dart): Original implementation performed fuzzy keyword matching on the entire content JSON string, causing number searches to hit image dimensions, file path sequences, and server URL IDs. Fixed to search specific fields by contentType, aligned with Go SDK filterMsg logic:
      • Text (101): search textElem.content only
      • @message (106): search atTextElem.text only
      • File (105): search fileElem.fileName only
      • Merge (107): search mergeElem.title only
      • Card (108): search cardElem.nickname only
      • Location (109) / Custom (110): search description only
      • Quote (114): search quoteElem.text only
      • Image (102) / Voice (103) / Video (104): excluded when keyword is present
    Open source →
  22. 1.7.5 29 Mar 2026

    Nothing published for this version

  23. 1.7.4 28 Mar 2026

    Nothing published for this version

  24. 1.7.3 28 Mar 2026

    Nothing published for this version

  25. 1.7.2 28 Mar 2026

    Nothing published for this version

  26. 1.7.0 27 Mar 2026

    Nothing published for this version

  27. 1.6.7 27 Mar 2026

    Nothing published for this version

  28. 1.6.6 27 Mar 2026

    Nothing published for this version

  29. 1.6.5 26 Mar 2026

    Nothing published for this version

  30. 1.6.4 24 Mar 2026

    Nothing published for this version

  31. 1.6.3 24 Mar 2026

    Nothing published for this version

  32. 1.6.2 24 Mar 2026

    Nothing published for this version

  33. 1.6.1 24 Mar 2026

    Nothing published for this version

  34. 1.6.0 24 Mar 2026

    Nothing published for this version

  35. 1.5.0 22 Mar 2026

    Nothing published for this version

  36. 1.4.7 21 Mar 2026

    Nothing published for this version

  37. 1.4.6 21 Mar 2026

    Nothing published for this version

  38. 1.4.5 21 Mar 2026

    Nothing published for this version

  39. 1.4.4 21 Mar 2026

    Nothing published for this version

  40. 1.4.3 20 Mar 2026

    Nothing published for this version

  41. 1.4.2 20 Mar 2026

    Nothing published for this version

  42. 1.4.1 20 Mar 2026

    Nothing published for this version

  43. 1.4.0 20 Mar 2026

    Nothing published for this version

  44. 1.3.5 19 Mar 2026

    Nothing published for this version

  45. 1.3.4 18 Mar 2026

    Nothing published for this version

  46. 1.3.3 18 Mar 2026

    Nothing published for this version

  47. 1.3.2 18 Mar 2026

    Nothing published for this version

  48. 1.3.1 17 Mar 2026

    Nothing published for this version

  49. 1.3.0 17 Mar 2026

    Nothing published for this version

  50. 1.2.1 17 Mar 2026

    Nothing published for this version

  51. 1.2.0 16 Mar 2026

    Nothing published for this version

  52. 1.1.7 16 Mar 2026

    Nothing published for this version

  53. 1.1.3 15 Mar 2026

    Nothing published for this version

  54. 1.1.2 15 Mar 2026

    Nothing published for this version

  55. 1.1.0 15 Mar 2026

    Nothing published for this version

  56. 1.0.8 15 Mar 2026

    Nothing published for this version

  57. 1.0.7 15 Mar 2026

    Nothing published for this version

  58. 1.0.6 15 Mar 2026

    Nothing published for this version

  59. 1.0.5 15 Mar 2026

    Nothing published for this version

  60. 1.0.4 15 Mar 2026

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive