GitHub repositoryably/ably-pubsub-flutter

ably-flutter

A wrapper around our Cocoa and Java client library SDKs, providing iOS and Android support for those using Flutter and Dart.

ably-flutter project cover
Stars
67
Forks
19
Last push (UTC)
Sep 10, 2026
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

Ably Pub/Sub Flutter Header Pub Version License


Ably Pub/Sub Flutter SDK

Build any realtime experience using Ably’s Pub/Sub Flutter SDK. Supported on popular platforms and frameworks, including Android and iOS.

Ably Pub/Sub provides flexible APIs that deliver features such as pub-sub messaging, message history, presence, and push notifications. Utilizing Ably’s realtime messaging platform, applications benefit from its highly performant, reliable, and scalable infrastructure.

Find out more:


Getting started

Everything you need to get started with Ably:


Supported platforms

Ably aims to support a wide range of platforms. If you experience any compatibility issues, open an issue in the repository or contact Ably support.

This SDK supports the following platforms:

Platform Support
Android Android 4.4 (API level 19) or newer. Java 8 language features supported via Desugaring.
iOS iOS 10 or newer
Flutter Flutter 2.5.0 or higher

[!NOTE] If your project needs support for SDK Version lower than 24, Android Gradle Plugin 4.0.0+ must be used. You might also need to upgrade gradle distribution. [!IMPORTANT] SDK versions < 1.2.25 will be deprecated from November 1, 2025.


Installation

To get started with your project, install the package:

Add the Ably Flutter package to your project by including it in your pubspec.yaml file:

dependencies:
  ably_flutter: ^1.2.44

Once added to your dependencies, import it in your Dart code:

import 'package:ably_flutter/ably_flutter.dart' as ably;

[!NOTE] When increasing the version of ably_flutter in your pubspec.yaml, if there are breaking changes, follow the updating / migration guide.


Usage

The following code connects to Ably's realtime messaging service, subscribes to a channel to receive messages, and publishes a test message to that same channel:

  // Initialize Ably Realtime client
  final clientOptions = ably.ClientOptions(
    key: 'your-ably-api-key',
    clientId: 'me',
  );
  
  final realtimeClient = ably.Realtime(options: clientOptions);
  
  // Wait for connection to be established
  await realtimeClient.connection
      .on(ably.ConnectionEvent.connected)
      .first
      .then((stateChange) {
    print('Connected to Ably');
  });
  
  // Get a reference to the 'test-channel' channel
  final channel = realtimeClient.channels.get('test-channel');
  
  // Subscribe to all messages published to this channel
  channel.subscribe().listen((ably.Message message) {
    print('Received message: ${message.data}');
  });
  
  // Publish a test message to the channel
  await channel.publish(
    name: 'test-event',
    data: 'hello world',
  );

Releases

The CHANGELOG.md contains details of the latest releases for this SDK. You can also view all Ably releases on changelog.ably.com.


Contributing

Read the CONTRIBUTING.md guidelines to contribute to Ably.


Support, feedback, and troubleshooting

For help or technical support, visit the Ably Support page or GitHub Issues for community-reported bugs and discussions.

Ably Realtime - our client library SDKs and libraries GitHub avatar
GitHub author

Ably Realtime - our client library SDKs and libraries ↗

Ably’s platform lets you build, extend, and deliver powerful digital experiences in realtime. No complex infrastructure to manage just simple yet powerful APIs.

LanguagesDartJavaObjective-CSwiftCJavaScriptRubyKotlinShell

Categories

Dependencies used

Dependency list 6 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗