Whilst all officially supported Ably client libraries support all features defined in the specification, we recommend an approach that focuses on the most commonly used features first.
Realtime client libraries typically depend on REST client library features so our recommendation for Realtime client library development is to develop the REST client library first.
REST client library feature prioritisation
The complete feature specification for REST libraries is available at specification.
Realtime client library feature prioritisation
- REST client library – assumes that complete feature specification for REST libraries has been implemented and is available to this new realtime client library.
- Simple realtime connection over WebSockets with JSON & MessagePack support – see #initialization, #connect and #close within connection spec and ProtocolMessage object spec
- Attach, detach, publish and subscribe for channels – see Channel spec and channels object spec
- Message encoding and encryption on realtime channels – see Message spec
- Presence subscriptions, enter, update and leave – see #enter, #update, #leave, #subscribe and #unsubscribe of Presence spec
- Presence member map – see get and sync specs within the Presence spec
- Connection management – see connection failure section of the Connection failure spec
- Connection resume – see resume section of the Connection failure spec
- Async operations for presence, message history and stats – see Message history spec, Presence history spec and Stats spec
- Channel and presence recovery – see recovery and state change specs within Channel and recovery and state change specs within Presence
- Explicit connection recovery – see connection recovery section of the Connection spec
- Host fallback – see fallback host section of the Connection failure spec
- API compatibility – ensure remaining specifications are met as far as possible using idiomatic patterns common to the language being used
- Update the client library API documentation