Implementations

Get started with WAMP by choosing client libraries and a router:

  • To write application components in your favorite language, you will need a WAMP client library
  • To actually run your application consisting of components, you will need a WAMP router

In theory, you should be able to use any combination and mix of WAMP client libraries with routers and select the best or most fitting for each. That’s one promise of WAMP, one freedom of choice.

Note

  • You can choose your WAMP router independently of the programming language you want to write your components in since routers do not run application code directly.
  • Want your WAMP implementation listed here? Please join the mailing list or Gitter chat and introduce your project.

Libraries

The following table lists WAMP compliant client library implementations.

Name Language/Run-time Description
akka-wamp Scala, Java 8 and Akka WAMP implementation written in Scala with Akka HTTP, usable from Java 8.
AngularWAMP JavaScript AngularWAMP is wrapper for AutobahnJS that provides deeper integration for AngularJS apps.
AutobahnCpp C++ 11 and Boost/ASIO C++ 11 implementation using Futures, Continuations and Lambdas. Runs on top of Boost and ASIO.
AutobahnJava Java 8, Android or Netty WAMP client library for Java and Android applications based on Java 8 CompletableFuture.
AutobahnJS Javascript, HTML5 and NodeJS WAMP client library for both browsers (HTML5) and NodeJS using Promises.
AutobahnPython Python 2/3, Twisted and asyncio WAMP client library + WebSocket client/server impl. for Python 2 and 3, on Twisted and asyncio.
awre Erlang awre is a WAMP V2 implementation in Erlang with client roles.
Backbone JavaScript Allows two-way synchronisation of Backbone models & collections between frontends and backends.
connectanum Java, Netty A Java WAMP implementation based on Netty. Both Client and Router roles.
CppWAMP C++ 11 CppWAMP is a WAMP V2 implementation in C++11.
haskell-wamp Haskell An experimental Haskell implementation of WAMP Basic Profile.
kraftfahrstrasse TypeScript Modern WAMP Client library for browsers and node utilizing native ES6+.
jawampa Java + RxJava, Netty A Java WAMP implementation based on Netty and RxJava. Both Client and Router roles.
Loowy Lua, lib-ev Lua WAMP client implementation on top of lua-websockets and lib-ev.
MDWamp Objective-C Client library for iOS apps built on SocketRocket for WebSocket.
Minion PHP Client library and command line tool with Laravel support. Based on Thruway.
Nexus Go A full-feature WAMP client written in Go (also a Router).
p5-Net-WAMP Perl 5 A WAMP implementation in Perl. See the docs for details.
ruby_wamp_client Ruby A WAMP client for Ruby
rx-wamp JavaScript A RxJS wrapper library for WAMP. Built on AutobahnJS, running in the browser and NodeJS.
Thruway PHP Thruway is a WAMP library built in PHP that provides both Client and Router roles.
Turnpike Go A Go implementation of WAMP V2
Spell Elixir/Erlang Spell is a WAMP library built using Elixir, running on the Erlang VM.
Swamp Swift WAMP client library in pure Swift using Starscream and SwiftyJSON.
wampcc C++ A C++ WAMP library that aims to depend only on C libraries. Includes a basic router.
WAMP_POCO C++ A fork of AutobahnCpp that is using POCO instead of Boost.
wamped C++ Intended for running on ARM mbed OS. Experimental.
WampSharp C# C# implementation of WAMP: both client and router roles, both JSON and MessagePack support.
wampy Python Python implementation for classic blocking Python applications.
wampy.js JavaScript WAMP JavaScript client for browsers and node.js using callbacks. See here for comparison to AutobahnJS.

Routers

The following table lists WAMP compliant router implementations.

Name Language/Run-time Description
akka-wamp Scala, Java 8 and Akka A Scala implementation of a basic WAMP router.
Bonefish C++, Boost/ASIO WAMP router based on C++11 and Boost.Asio. Also usable as a library, Apache 2.0 licensed.
connectanum Java, Netty A Java WAMP implementation based on Netty. Both Client and Router roles.
Crossbar Python (PyPy), Twisted Crossbar.io WAMP router and microservice middleware. By the creators of WAMP and Autobahn.
CrossbarFX Python (PyPy), Twisted CrossbarFX enterprise WAMP router with central management, edge device platform and clustering.
Cargotube Erlang A software router in Erlang implementing the wamp.ws protcol (successor of Erwa).
Bondy Erlang Leapsight Bondy is an open source distributed API Gateway, WAMP Router and networking platform for microservices and IoT applications written in Erlang. It provides scaleable clustering capabilities via TCP/IP using Partisan, Plumtree Epidemic Broadcast Trees and an eventually consistent data store.
Erwa Erlang Erwa is a WAMP V2 implementation: Erwa will be archived soon, please consider using CargoTube.
jawampa Java + RxJava, Netty A Java WAMP implementation based on Netty and RxJava. Both Client and Router roles.
Nexus Go Router implementation for Go. (also includes a client implementation)
NighlifeRabbit JavaScript, NodeJS Router implementation for NodeJS, MIT licensed.
Thruway PHP Thruway is a WAMP library built in PHP that provides both Client and Router roles.
Turnpike Go turnpike is a WAMP v2 router implemented in Go.
wamp2spring Java, Spring A Java implementation built on top of the Spring 5 WebSocket support.
wampcc C++ A C++ WAMP library that aims to depend only on C libraries, making it easier to work and build on a range of platforms.
wamprt JavaScript, NodeJS <td class=”notes”>Router only implementation for NodeJS created by Orange.
WampSharp C# C# router implementation of WAMP v2, both JSON and MessagePack support.
Wiola Lua Router implementation in Lua, using the power of Lua/Nginx, WebSocket and Redis as cache store.