Available SDKs
Ably SDKs provide a consistent and idiomatic API across a variety of supported platforms. They contain a realtime and a REST interface, each of which offer different functionality and satisfy different use cases.
Use this page to check for which version of an SDK a feature is supported from. Be aware that this can vary between the realtime and the REST interface, as well as between SDKs.
Realtime and REST interfaces
The realtime interface is implemented using an Ably-defined protocol, with communication primarily over WebSockets. It enables devices and browsers to maintain a persistent connection to Ably. A WebSocket connection to Ably is multiplexed, allowing multiple channels to share a single connection. It is also bi-directional, allowing realtime messages to be sent both to and from the Ably service without having to fall back to inefficient techniques like HTTP polling. Realtime interface APIs are only usable in environments that support asynchronous or evented IO.
The REST interface communicates with the Ably service using the HTTP protocol and is effectively stateless. The REST interface provides a convenient way to access the REST HTTP API and is intended to be used by clients that don’t require realtime updates.
Deciding which interface to use depends on your application and use case.
Ably SDKs
The following table contains a list of common platforms and languages. The Ably SDK that supports each is listed, including a link to the relevant GitHub repository.
Platform / Language | Repository | Version | Notes |
---|---|---|---|
Android | ably-java | v1.2 | |
Clojure | ably-java | v1.2 | |
Cordova / Phonegap | ably-js | v1.2 | |
Flutter | ably-flutter | v1.2 | |
Go | ably-go | v1.2 | |
iOS Objective-C | ably-cocoa | v1.2 | |
iOS Swift | ably-cocoa | v1.2 | |
Java | ably-java | v1.2 | |
Javascript | ably-js | v1.2 | |
Kotlin | ably-java | v1.2 | |
Laravel (PHP) | ably-laravel-broadcaster | v1.0 | REST only |
MacOS | ably-cocoa | v1.2 | |
Mono | ably-dotnet | v1.2 | |
NativeScript | ably-js-nativescript | v1.2 | |
.NET | ably-dotnet | v1.2 | |
Node.js | ably-js | v1.2 | |
PHP | ably-php | v1.1 | REST only |
Scala | ably-java | v1.2 | |
Python | ably-python | v2.0 | |
React | ably-js | v1.2 | |
React Native | ably-js | v1.2 | |
Ruby | ably-ruby | v1.2 | |
Ruby (REST only) | ably-ruby-rest | v1.2 | REST only |
tvOS | ably-cocoa | v1.2 | |
Unity | ably-dotnet | v1.2 | |
Xamarin / Xamarin.forms | ably-dotnet | v1.2 |
Spaces SDK
The Spaces SDK enables you to implement realtime collaborative features in your applications.
Platform / Language | Repository | Version | Notes |
---|---|---|---|
JavaScript | spaces | v0.1.2 | In beta |
Feature support matrix
The following tables show the minimum version that a feature is supported from in each Ably SDK.
Common features
Feature | Flutter | Go | iOS | Java | JavaScript | .Net | PHP | Python | Ruby |
---|---|---|---|---|---|---|---|---|---|
Ably token generation | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
Symmetric encryption | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
MsgPack binary protocol | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
JWT auth | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ |
fromEncoded function | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ |
Message extras | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ |
ErrorInfo URLs to help debug issues | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ |
Realtime features
Feature | Flutter | Go | iOS | Java | JavaScript | .Net | Ruby | Python |
---|---|---|---|---|---|---|---|---|
Publish | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | via REST |
Subscribe | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v2.0+ |
Presence | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | |
History | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v2.0+ |
Stats | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v2.0+ |
Push Notifications target | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v2.0+ |
Transient publishing | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | |
Reconnect on failed auth | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v2.0+ |
Custom transportParams | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | |
Message delta compression | v1.2+ | v1.2+ | v1.2+ | v1.2+ | v1.2+ | v1.2+ | v1.2+ |
REST features
Feature | Flutter | Go | iOS | Java | JavaScript | .Net | PHP | Python | Ruby |
---|---|---|---|---|---|---|---|---|---|
Channel publish | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
History | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
Presence (get state) | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
Ably token generation | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
Stats | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ | v0.8+ |
Push Notifications admin | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ |
Remember fallback host during failures | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ | v1.1+ |