Search packages, repositories and app categories

Package detailsv0.21.0

centrifuge

Dart client to communicate with Centrifuge and Centrifugo from Flutter and VM over WebSockets

AndroidiOSWebmacOSWindowsLinux
30-day downloads
76.5K
Likes
49
Pub points
140

Install package

flutter pub add centrifuge

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

Centrifuge is a Dart client for real-time communication with Centrifuge and Centrifugo servers over WebSockets. It enables Flutter and VM applications to subscribe to channels, receive live updates, and publish messages in real time. Designed for low-latency interactions, it supports connection management, reconnection logic, and message broadcasting across multiple platforms. Ideal for building chat apps, live dashboards, and collaborative tools requiring instant data synchronization.

Use cases

  • Real-time chat applications
  • Live dashboard updates
  • Collaborative editing tools
  • Push notifications
  • Multiplayer game sync

Key features

  • WebSocket-based real-time communication
  • Automatic reconnection
  • Channel subscription and publishing
  • Cross-platform support
  • Lightweight and efficient
  • Secure token authentication

Suitable for

  • Flutter mobile and web apps
  • Server-side Dart services
  • Real-time data streaming
  • High-frequency event handling

Considerations

  • Requires a running Centrifuge or Centrifugo server
  • Needs proper authentication setup
  • May require network permission configuration on mobile
  • Depends on stable WebSocket connectivity

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Websocket client for Centrifugo server and Centrifuge library.

Since there is no v1 release yet, patch version updates only contain backwards compatible changes, minor version updates can have backwards incompatible API changes.

Check out client SDK API specification to learn how this SDK behaves. It's recommended to read that before starting to work with this SDK as the spec covers common SDK behavior - describes client and subscription state transitions, main options and methods. Also check out examples folder.

The features implemented by this SDK can be found in SDK feature matrix.

Note that custom WebSocket connection Upgrade headers are sent natively on platforms that support dart:io and in web context headers are sent using Centrifugo v6 Headers Emulation feature.

The latest centrifuge-dart is compatible with Centrifugo server v6, v5 and v4 and Centrifuge >= 0.25.0. For Centrifugo v2, Centrifugo v3 and Centrifuge < 0.25.0 you should use centrifuge-dart v0.8.0.

Examples

  • example\flutter_app simple chat application
  • example\chat_app one more chat example
  • example\console simple console application

Usage in background

When a mobile application goes to the background there are OS-specific limitations for established persistent connections - which can be silently closed shortly. Thus in most cases you need to disconnect from a server when app moves to the background and connect again when app goes to the foreground.

Alternative SDK

See also PlugFox/spinify for an alternative Dart (Flutter) real-time client SDK implementation.

Run tests locally

Start test Centrifugo server:

docker compose up

Then run tests:

dart run test --reporter expanded

Instructions for maintainers/contributors

How to update protobuf definitions
  1. Install protoc compiler
  2. Install protoc_plugin https://pub.dev/packages/protoc_plugin (dart pub global activate protoc_plugin)
  3. cd lib/src/proto and run protoc --dart_out=. -I . client.proto
  4. cd to root and run dartfmt -w lib/ test/ (install dartfmt with dart pub global activate dart_style)
How to release
  1. Update CHANGELOG.md, bump version in pubspec.yaml, push, create new tag
  2. [ONLY IF THERE ARE ISSUES WITH CI PUBLISH] dart pub publish

Author

German Saprykin, saprykin.h@gmail.com

Categories

Dependencies

Dependency list 4 items

Source repository

Projects using this package

Rankings