Channels API libraries
Sending and receiving messages using the Channels API requires libraries. In this section you’ll find libraries for a variety of platforms.
Channels libraries are divided into 2 categories:
- Client
Client libraries predominantly consume messages using a WebSocket interface. Think of them as subscribers , although it’s possible to publish messages using Client Events. - Server
Server libraries publish messages, request information using our HTTP API, authenticate users, authorize users, and handle Webhook calls. Think of them as publishers, although it’s possible to subscribe to messages using Client Event Webhooks.
∞ Official libraries
The following libraries are updated and supported by Pusher.
∞ Client libraries
| Library | Maintainer | Docs | Code |
|---|---|---|---|
| Android (uses Java library) | Pusher | Docs | pusher/pusher-websocket-android |
| AngularJS (uses JavaScript library) | Pusher | Docs | pusher/pusher-angular |
| iOS: Swift and Objective-C | Pusher | Docs | pusher/pusher-websocket-swift |
| iOS: Objective-C | Pusher Luke Redpath | Docs | pusher/libPusher |
| Java | Pusher | Docs | pusher/pusher-websocket-java |
| JavaScript | Pusher | Docs | pusher/pusher-js |
| .NET | Pusher | Docs | pusher/pusher-websocket-dotnet |
| Unity | Pusher | Docs | pusher/pusher-websocket-unity |
| Flutter | Pusher | Docs | pusher/pusher-channels-flutter |
| React Native | Pusher | Docs | pusher/pusher-websocket-react-native |
∞ Official server libraries
| Library | Maintainer | Docs | Code |
|---|---|---|---|
| Go | Pusher | Docs | pusher/pusher-http-go |
| Java | Pusher | Docs | pusher/pusher-http-java |
| .NET | Pusher | Docs | pusher/pusher-http-dotnet |
| Node.js | Pusher | Docs | pusher/pusher-http-node |
| PHP | Pusher | Docs | pusher/pusher-http-php |
| Python | Pusher | Docs | pusher/pusher-http-python |
| Ruby | Pusher | Docs | pusher/pusher-http-ruby |
| Swift | Pusher | Docs | pusher/pusher-http-swift |
Community libraries
These libraries are built by members of the Pusher Channels Developer Community. They are potentially incomplete and are therefore not officially supported by Pusher. We recommend that you first reach out to the maintainer of the library before contacting Pusher support.
∞ ActionScript
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| PusherAS | Client | rocketengine.io | Docs | rocketengineio/PusherAS |
| Pusher-ActionScript-Library | Client | Shawn Makison | smakinson/Pusher-ActionScript-Library |
∞ Android
also see Java
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| titanium_pusher_android | Client | Ruben Fonseca | Docs | pusher/titanium_pusher_android |
∞ Arduino
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| ArduinoPusherClient | Client | Kevin Rohling | Docs | krohling/ArduinoPusherClient |
∞ C++
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| niv/pusher-websocket-cpp | Client | niv | Docs | niv/pusher-websocket-cpp |
| pusherpp | Server | Mazen Abdulaziz | Docs | parallelfold/pusherpp |
| BenPope/pusher-cpp | Client and Server | BenPope | Docs | BenPope/pusher-cpp |
∞ Clojure
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| clj-pusher | Server | Bartosz Blimke | Docs | bblimke/clj-pusher |
∞ Coldfusion
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| Pusher.cfc | Server | Ben Nadel | Docs | bennadel/Pusher.cfc |
∞ Dart
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| Dart Pusher | Server | Adao Junior | Docs | adaojunior/pusher |
∞ Elixir
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| Pushest | Client | Tomas Koutsky | Docs | stepnivlk/pushest |
∞ Flutter
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| flutter_pusher | Client | Genert | Docs | ninjasolutions/flutter_pusher |
| pusher_client | Client | chinloyal | Docs | chinloyal/pusher_client |
∞ Grails
see Groovy
∞ Groovy
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| groovy-libpusher | Server | zenuevo | Docs | zenuevo/groovy-libpusher |
| pusher-plugin | Server | micpango | Docs | micpango/pusher-plugin |
∞ Haskell
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| pusher-http-haskell | Server | Will Sewell | Docs | WillSewell/pusher-http-haskell |
| pusher-haskell | Server | Sid Raval | Docs | sidraval/pusher-haskell |
| pusher-ws | Client | barrucadu | Docs | barrucadu/pusher-ws |
∞ iOS
also see Objective-C
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| titanium_pusher_ios | Client | Ruben Fonseca | Docs | pusher/titanium_pusher_ios |
∞ Java
also see Android
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| JavaPusherClient | Client | Justin Schultz | Docs | jmschultz/JavaPusherClient |
| gae-java-libpusher | Server | Docs | Docs | marcbaechinger/gae-java-libpusher |
| Play2Pusher | Server | Tindr Solutions | Docs | tindr/Play2Pusher |
| Play-Pusher | Server | regisbamba | Docs | regisbamba/Play-Pusher |
∞ JavaScript
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| Laravel Echo | Client | Laravel | Docs | laravel/echo |
∞ .NET
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| pusher-universal | Client | Gateway Apps | Docs | gatewayapps/pusher-universal |
| Pusher.NET | Client | Digital Creations AS | Docs | digitalcreations/Pusher.NET |
| JDI PusherClient | Client | Jim Stabile | Docs | jdipusherclient.codeplex |
∞ Node.js
also see JavaScript
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| pusher-node-client | Client | Abhishiv Saxena | Docs | abhishiv/pusher-node-client |
∞ Objective-C
also see iOS
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| Bully | Client | Sam Soffes | Docs | samsoffes/bully |
∞ Perl
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| WWW::Pusher | Server | Squeeks | Docs | pusher/pusher-perl-server |
∞ PHP
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| Laravel | Server | Laravel | Docs | laravel/laravel |
| ZfrPusher | Server | Michaël Gallego | Docs | zf-fr/zfr-pusher |
| Channels PHP SDK for CodeIgniter | Server | Mattias Hedman | Docs | darkwhispering/pusher-for-codeigniter |
| Symfony | Server | Pierre-Louis Launay | Docs | laupiFrpar/LopiPusherBundle |
| Zend Framework 2 | Server | Michaël Gallego | Docs | zf-fr/zfr-pusher-module |
| Yii PHP Framework | Server | nk913 | Docs | yiiframework/pusher |
| Kohana 3 | Server | 2bj | Docs | 2bj/Pushko |
| FuelPHP | Server | Ahmad Shah | Docs | lembubintik/pusherapp |
| Drupal | Server | fabianderijk | Docs | drupal/pusher |
∞ Python
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| Pysher | Client | Nils Diefenbach | Docs | nlsdfnbch/Pysher |
∞ React
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| react-pusher-hoc | Client | Felix Wostal | Docs | fel1xw/react-pusher-hoc |
∞ React Native
∞ QML
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| qml-pusher | Client | Jason Barron | Docs | Cutehacks/qml-pusher |
∞ Ruby
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| pusher-websocket-ruby | Client | Logan Koester | Docs | pusher/pusher-websocket-ruby |
∞ Scala
| Library | Type | Maintainer | Docs | Code |
|---|---|---|---|---|
| dtaniwaki/akka-pusher | Server | dtaniwaki | Docs | dtaniwaki/akka-pusher |
∞ Test/example applications
For an open source example application built on libPusher, see the Github repo and the App Store
For an open source example application built on pusher-websocket-java, see the Github repo
∞ Don’t see your platform?
We’d love to see client and server libraries for other languages. Make sure to let us know if you come up with anything so we can highlight it here.