PackageTrack
Sign in Get early access

flutter_chat_core

Core package for Flutter chat apps, complementing flutter_chat_ui. Contains models and core functionality. #chat #ui

2.9.0 54K downloads/mo #1427 most downloaded on pub.dev flyerhq/flutter_chat_ui

What this package is like to depend on

Last release 8 months ago

06 Dec 2025

Ships unpredictably

gaps range from 8 days to 4 months

Nearly every release is documented

notes for 30 of 30 stable releases

Nothing withdrawn

no release was ever pulled

2 years old

30 releases · first in 2024

1 release in the last 12 months

see the full history below

Release timeline

30 releases · Aug 2024 to Dec 2025
2025 2026
Release Pre-release

Releases

latest 30
  1. 2.9.0 06 Dec 2025
    Release notes

    This release introduces two-sided pagination. You can now load newer messages using the new onStartReached callback, while onEndReached continues to work for older messages. For pagination to work correctly, messages should be inserted instantly, without animation.

    To allow this and offer more granular control, a new optional animated parameter has been added to all controller operations except update. This is not a breaking change, but if you'd like to use it, you can update your controller like so:

    insertMessage(Message message, {int? index}) // ❌
    insertMessage(Message message, {int? index, bool animated = true}) // ✅
    ChatOperation.insert(..., animated: animated) // add animated to insert operations
    
    insertAllMessages(List<Message> messages, {int? index}) // ❌
    insertAllMessages(List<Message> messages, {int? index, bool animated = true}) // ✅
    ChatOperation.insertAll(..., animated: animated) // add animated to insertAll operations
    
    removeMessage(Message message) // ❌
    removeMessage(Message message, {bool animated = true}) // ✅
    ChatOperation.remove(..., animated: animated) // add animated to remove operations
    
    setMessages(List<Message> messages) // ❌
    setMessages(List<Message> messages, {bool animated = true}) // ✅
    ChatOperation.set(..., animated: animated) // add animated to set operations

    As an optional improvement, you can use this parameter to disable animations when clearing the chat, which is now the default behaviour in the example apps.

    ChatOperation.set(messages, animated: messages.isEmpty ? false : animated) // inside the controller

    ⚠️ There is a small potential breaking change: LoadMoreNotifier was updated for two-sided loading. If you used a custom LoadMore widget and used LoadMoreNotifier to measure its height, that logic has been removed as it was not used. Additionally, the internal property _isLoading is now _isLoadingOlder, and _isLoadingNewer has been added.

    2.8.1

    • FIX: composer inputClearMode and fix custom editing controller. (b4872190)
    Open source →
    Release notes
    • FEAT: update deps - requires min dart 3.8 and flutter 3.32 (#871). (588b34bd)
    Open source →
  2. 2.8.0 26 Jul 2025
    Release notes
    • FEAT: allow for top widgets within the bubble (#814). (e267c27c)
    Open source →
    Release notes
    Open source →
  3. 2.7.1 19 Jul 2025
    Release notes
    Open source →
  4. 2.7.0 12 Jul 2025
    Release notes

    2.6.2

    • FIX: new loadingBuilder for stream message. (38d539ac)

    2.6.1

    • FIX: add sendButtonDisabled and sendButtonHidden #828. (d476dd45)
    Open source →
    Release notes
    Open source →
  5. 2.6.2 27 Jun 2025
    Release notes
    Open source →
    Release notes
    • Use utf8 codec to parse chinese symbols

    • Update dependencies. Requires Dart >= 2.15.1.

    Open source →
  6. 2.6.1 09 Jun 2025
    Release notes
    • FIX: add size attribute for ImageMessage (#813). (f50a3420)
    Open source →
    Release notes
    • Update dependencies
    Open source →
  7. 2.6.0 08 Jun 2025
    Release notes

    ⚠️ Breaking Changes ⚠️

    onMessageTap and onMessageLongPress added BuildContext as a first parameter, so if you had something like this:

    void _handleMessageLongPress(
      Message message, {
      int? index,
      LongPressStartDetails? details,
    })

    replace it with this:

    void _handleMessageLongPress(
      BuildContext context,
      Message message, {
      int? index,
      LongPressStartDetails? details,
    })

    • FIX: scrollToIndex does not work when starting with an empty list #793. (1948c1f5)
    • FEAT: add sendButtonVisibilityMode and allowEmptyMessage to the composer. (7a496607)
    • FEAT: add method OnMessageDoubleTapCallback; add param BuildContext context for OnMessageTapCallback and OnMessageLongPressCallback (#817). (6fe68886)

    2.5.3

    2.5.2

    • Update a dependency to the latest release.

    2.5.1

    • FIX: re-enable composer blur. (791f7308)
    Open source →
    Release notes
    Open source →
    Release notes
    • Updated dependencies (requires Dart >=2.14.0)

    • Fixed Android example. Thanks @rvndsngwn for reporting!

    Open source →
  8. 2.5.0 08 Jun 2025
    Release notes
    Open source →
    Release notes
    Open source →
    Release notes
    • Update to Flutter 2.5

    • Rename REGEX_EMAIL to regexEmail and REGEX_LINK to regexLink

    Open source →
  9. 2.4.0 26 May 2025
    Release notes

    ⚠️ Breaking Changes ⚠️

    All message builders will also provide isSentByMe and groupStatus now. Just pass

    {
      required bool isSentByMe,
      MessageGroupStatus? groupStatus,
    }

    after the index param. It is fine not to use these fields if not needed.


    Open source →
    Release notes
    • FIX: expose user_cache and make it a changenotifier. (baa7eee6)
    • FEAT: make messages required for set operation. (9e123732)
    Open source →
    Release notes
    • Update dependencies
    Open source →
  10. 2.3.0 22 May 2025
    Release notes

    2.3.0

    ⚠️ Breaking Changes ⚠️

    • Renamed LinkPreviewLinkPreviewData

    • LinkPreview.imageUrlLinkPreviewData.image.url

    • Both LinkPreviewData.image.width and LinkPreviewData.image.height are now required

    • FEAT: link preview v2 (#784). (b65060e1)

    2.2.4

    • FIX: add physics param to the ChatAnimatedList(Reversed). (ede3a170)
    • FIX: emptyChatList not clickable (#787). (88937baa)

    2.2.3

    2.2.2

    2.2.1

    • FIX: list rebuilding when keyboard opens/closes. (48e28e7e)
    Open source →
    Release notes
    Open source →
    Release notes
    • Improve REGEX

    • Add custom imageBuilder

    Open source →
  11. 2.2.1 19 May 2025
    Release notes
    Open source →
    Release notes
    • Update dependencies
    Open source →
  12. 2.2.0 17 May 2025
    Release notes
    • FIX: update operation not persisted in the list (#778). (37472015)
    • FEAT: Fix StreamOperation Async issues / create insertAll / fixInsert on reverted list (#756). (60395f9b)
    Open source →
    Release notes
    • Add hideImage param
    Open source →
  13. 2.1.2 11 May 2025
    Release notes
    • FIX: add audio message type. (8d2b705a)
    Open source →
  14. 2.1.1 04 May 2025
    Release notes
    • FIX: add video message type. (93a13840)
    Open source →
  15. 2.1.0 03 May 2025
    Release notes
    • FEAT: rename chat controller methods. (dc1bf57d)
    Open source →
    Release notes
    • Update dependencies
    Open source →
  16. 2.0.2 02 May 2025
    Release notes
    • FIX: improve documentation and add example. (113141b3)
    Open source →
    Release notes
    • Fix paddings for an empty preview data

    • Limit number of images parsed

    • Fix regex

    Open source →
  17. 2.0.1 02 May 2025
    Release notes
    • FIX: document public APIs.
    Open source →
    Release notes
    • Fix custom padding and add a custom link press handler
    Open source →
  18. 2.0.0 01 May 2025
    Release notes
    • First stable release, keep the same version as flutter_chat_ui
    Open source →
    Release notes
    • BREAKING : onPreviewDataFetched and previewData are now required. In the previous version, a link preview used on a ListView resulted in a fetch call every time the preview was appearing on a screen.
    Open source →
  19. 0.0.12 01 May 2025
    Release notes

    ⚠️ Breaking changes ⚠️

    • Updated the Message model to rename parentId to replyToMessageId
    • The createdAt field is now optional in the message model
    • The sending field has been removed from the message model; instead, you can set sending: true in the metadata of the Message model to achieve the same functionality.
    • The isOnlyEmoji property has been removed from the text message model; to indicate that a message contains only emojis, use isOnlyEmoji: true in the metadata of the text message.
    • The firstName and lastName fields in the User model have been consolidated into a single name field for improved simplicity.

    Other changes

    • Introduced MessageID and UserID typedefs to provide clearer context, while maintaining their underlying type as Strings
    • Introduced TextStreamMessage type to support text streaming
    • Added textStreamMessageBuilder to the Builders class to support text streaming UI widget
    Open source →
  20. 0.0.11 20 Apr 2025
    Release notes

    ⚠️ Breaking changes ⚠️

    • Rename inputBuilder to composerBuilder
    Open source →
  21. 0.0.10 06 Apr 2025
    Release notes

    ⚠️ Breaking changes ⚠️

    • Requires Freezed 3.0.0
    • Replace status field with a computed getter that determines message state based on lifecycle timestamps (createdAt, deletedAt, sending, failedAt, sentAt, deliveredAt, seenAt, updatedAt). This enables granular message history tracking and status transitions, matching the behavior of popular chat applications.
    • Rename overlay to hasOverlay in ImageMessage

    Other changes

    • Downgrade intl package version for better compatibility with other Flutter packages
    Open source →
  22. 0.0.9 25 Mar 2025
    Release notes
    • Added system message for displaying system notifications and events in chat
    Open source →
    Release notes
    • Readme added
    Open source →
  23. 0.0.8 16 Mar 2025
    Release notes
    • Add UserCache class to store resolved users for synchronous access, preventing flickering in recycled widgets by caching user data with LRU eviction strategy
    • Add ScrollToMessageMixin to enable programmatic scrolling in chat list:
      • scrollToMessage(messageId): Scrolls to a specific message by ID
      • scrollToIndex(index): Scrolls to a message at a specific index
      • Both methods support customizable animation duration, curve, alignment and offset
      • Can be used directly through any ChatController instance
      • See the pagination example in the example project for usage details
    • Add validation to prevent duplicate message IDs
    Open source →
    Release notes
    • Dependency update
    Open source →
  24. 0.0.7 18 Feb 2025
    Release notes
    • Require Flutter 3.29 and Dart 3.7
    Open source →
    Release notes
    • Use types from utility library
    Open source →
  25. 0.0.6 16 Feb 2025
    Release notes

    ⚠️ Breaking changes ⚠️

    • Changed signature of chatMessageBuilder to include isRemoved and groupStatus parameters.
    • Changed imageUrl to imageSource for the User model. Change is necessary to show that not only remote URLs are supported but also local assets.
    Open source →
    Release notes
    • Make widget stateless
    Open source →
  26. 0.0.5 04 Feb 2025
    Release notes

    ⚠️ Breaking changes ⚠️

    🔄 Core Changes:

    • author (type User) is replaced with authorId (type String) for simpler user management
    • All DateTime properties now use milliseconds instead of microseconds for JSON serialization

    🎨 Theme Simplification: Theme has been streamlined to 3 key parameters:

    1. colors - Uses Material 3 semantic names (e.g. primary, onPrimary, secondary) making it easy to apply color schemes
    2. typography - Follows Flutter's TextTheme semantic naming conventions
    3. shape - Controls border radius of all messages (rounded vs square messages)

    ✨ Enhanced Customization:

    • Individual widget customization available through the builders parameter
    • Example: loadMoreBuilder: (context) => LoadMore(color: Colors.red) overrides theme colors
    • Full widget customization possible by returning custom widgets from builders
    Open source →
    Release notes
    • Render plain text on loading and error
    Open source →
  27. 0.0.4 02 Jan 2025
    Release notes
    • Added isOnlyEmoji parameter to TextMessage.
    • Message builders now include the message index in their parameters.
    • Reverted withValues to withOpacity to resolve a compatibility issue.
    Open source →
    Release notes
    • Critical fix and remove unneeded code
    Open source →
  28. 0.0.3 28 Dec 2024
    Release notes
    • Added customMessageBuilder for building custom messages
    • Added overlay parameter to ImageMessage
    • Themes:
      • Added ImageMessageTheme (replacing imagePlaceholderColor)
      • Updated InputTheme (adding textFieldColor)
      • Updated ScrollToBottomTheme
      • Updated TextMessageTheme
    • Added UploadProgressMixin for handling upload progress tracking
    Open source →
    Release notes
    • Code improvements and cleanup
    Open source →
  29. 0.0.2 21 Oct 2024
    Release notes
    • Bump version to support flutter_chat_ui v2 alpha release
    Open source →
    Release notes
    • Added customization
    Open source →
  30. 0.0.1 17 Aug 2024
    Release notes
    • Initial release
    Open source →
    Release notes
    • Initial release

    365

    likes

    150

    points

    67.7k

    downloads

    Documentation

    API reference

    Publisher

    flyer.chat

    Weekly Downloads

    Metadata

    Customizable link and URL preview extracted from the provided text with the ability to render from the cache. Ideal for chat applications.

    Homepage

    Repository (GitHub)

    View/report issues

    Contributing

    License

    MIT ( license )

    Dependencies

    flutter , flutter_chat_core , html , http , punycode , url_launcher

    More

    Packages that depend on flutter_link_previewer

    ← Metadata

    365

    likes

    150

    points

    67.7k

    downloads

    Documentation

    API reference

    Publisher

    flyer.chat

    Weekly Downloads

    Metadata

    Customizable link and URL preview extracted from the provided text with the ability to render from the cache. Ideal for chat applications.

    Homepage

    Repository (GitHub)

    View/report issues

    Contributing

    License

    MIT ( license )

    Dependencies

    flutter , flutter_chat_core , html , http , punycode , url_launcher

    More

    Packages that depend on flutter_link_previewer

    Back

    Open source →

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