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.