SDK overview
Ably’s SDKs provide comprehensive feature support including:- Automatic connection management
- Authentication token renewal
- Connection state recovery
- Message continuity
- Automatic reconnection with intelligent fallback
- APIs for the full range of Ably functionality
Ably SDKs are the recommended method for connecting to Ably. For scenarios where SDKs are impractical, consider using protocol adapters.
Available SDKs
Ably provides SDKs across multiple product lines:Pub/Sub SDKs
Ably’s core Pub/Sub SDKs are available for: Client-side platforms:- JavaScript (browser)
- React
- React Native
- Swift (iOS/macOS)
- Java (Android)
- Flutter
- Unity
- .NET
- JavaScript (Node.js)
- Python
- Ruby
- Java
- Go
- PHP
- .NET
Purpose-built SDKs
Ably also provides purpose-built SDKs for specific use cases: Chat SDKs:- JavaScript
- React
- Swift (iOS/macOS)
- Kotlin (Android)
- JavaScript
- React
- JavaScript
- Swift (iOS/macOS)
SDK features by interface
REST interface
The REST interface is available in all Pub/Sub SDKs and provides:- Message publishing
- Message history retrieval
- Presence history retrieval
- Token issuance
- Application statistics
Realtime interface
The Realtime interface is available in all Pub/Sub SDKs and provides:- Everything in the REST interface
- Message subscription
- Realtime presence
- Connection state management
- Automatic reconnection
- Message continuity through connection recovery
Choosing an SDK
When selecting an SDK, consider:Platform requirements
- Client-side applications: Use client-side SDKs optimized for browser, mobile, or desktop environments
- Server-side applications: Use server-side SDKs optimized for backend services
- Cross-platform applications: Consider React Native, Flutter, or Unity SDKs
Use case requirements
- Simple pub/sub: Use core Pub/Sub SDKs
- Chat applications: Use Chat SDKs for built-in chat features
- Collaborative applications: Use Spaces SDKs for multiplayer and collaborative features
- State synchronization: Use LiveObjects SDKs for shared state management
Interface requirements
- Publishing only: REST interface is sufficient and more efficient
- Subscribing to messages: Realtime interface is required
- Serverless environments: Use REST interface (no persistent connections)
- Low latency requirements: Use Realtime interface
SDK documentation
For detailed documentation on each SDK:Installation and setup
Each SDK has specific installation instructions based on its platform:- JavaScript/Node.js: npm or yarn
- Python: pip
- Ruby: gem
- Java: Maven or Gradle
- Swift: Swift Package Manager or CocoaPods
- .NET: NuGet
- Flutter: pub
Authentication
All SDKs support multiple authentication methods:- API keys: For server-side applications and development
- Token authentication: For client-side applications (recommended)
- Token requests: For secure token issuance from your servers
Connection management
Realtime SDKs provide automatic connection management:- Automatic connection to the nearest datacenter
- Intelligent fallback to alternative datacenters
- Automatic reconnection on connection loss
- Connection state recovery to maintain message continuity
SDK versions
Ably maintains up-to-date SDKs with regular releases:- Bug fixes: Released as patch versions
- New features: Released as minor versions
- Breaking changes: Released as major versions (following semantic versioning)
It is recommended that you always update to the latest version of an SDK when it is available. Ably supports all releases for at least 12 months from the date of release of a version that supersedes it.
Protocol adapters
For scenarios where Ably SDKs are not available or practical, protocol adapters provide alternative connectivity:- MQTT: For IoT devices and constrained environments
- SSE: For subscribe-only browser clients
- Pusher adapter: For migration from Pusher
- PubNub adapter: For migration from PubNub
Examples and tutorials
Ably provides extensive examples and tutorials for all SDKs:- Code examples in multiple languages
- Integration guides
- Best practices
- Common patterns and use cases
Support and community
For SDK support:- Documentation: Comprehensive documentation for all SDKs at ably.com/docs
- GitHub: Open source SDKs with issue tracking
- Support: Contact Ably support for assistance
- Community: Join the Ably community for discussions and help
Next steps
Getting started
Choose your platform and start building
Authentication
Learn about authentication methods
Products
Explore Ably’s products and choose the right one
Examples
Browse code examples and tutorials
