All Projects → jcelliott → Turnpike

jcelliott / Turnpike

Licence: mit
Go implementation of a WAMP (Web Application Messaging Protocol) client and router

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Turnpike

Webwire Go
A transport independent asynchronous duplex messaging library for Go
Stars: ✭ 216 (-11.11%)
Mutual labels:  websockets
Django Sockpuppet
Build reactive applications with the django tooling you already know and love.
Stars: ✭ 225 (-7.41%)
Mutual labels:  websockets
Anycable Go
Anycable Go WebSocket Server
Stars: ✭ 234 (-3.7%)
Mutual labels:  websockets
Pont
An online board game in Rust and WebAssembly
Stars: ✭ 218 (-10.29%)
Mutual labels:  websockets
Postfacto
Self-hosted retro tool aimed at helping remote teams
Stars: ✭ 224 (-7.82%)
Mutual labels:  websockets
Websocket Client
WebSocket client for Python
Stars: ✭ 2,810 (+1056.38%)
Mutual labels:  websockets
Isomorphic Ws
Isomorphic implementation of WebSocket (https://www.npmjs.com/package/ws)
Stars: ✭ 215 (-11.52%)
Mutual labels:  websockets
Plezi
Plezi - the Ruby framework for realtime web-apps, websockets and RESTful HTTP
Stars: ✭ 239 (-1.65%)
Mutual labels:  websockets
Koa Websocket
Light wrapper around Koa providing a websocket middleware handler that is koa-route compatible.
Stars: ✭ 224 (-7.82%)
Mutual labels:  websockets
Brayns
Visualizer for large-scale and interactive ray-tracing of neurons
Stars: ✭ 232 (-4.53%)
Mutual labels:  websockets
Angular2 Websocket
Websocket wrapper for angular2 based on angular-websocket
Stars: ✭ 218 (-10.29%)
Mutual labels:  websockets
Web Socket
Laravel library for asynchronously serving WebSockets.
Stars: ✭ 225 (-7.41%)
Mutual labels:  websockets
Websockets Streaming Audio
Stream audio to a Web Audio API enabled browser from Node.js server side using Web Worker and Web Socket
Stars: ✭ 230 (-5.35%)
Mutual labels:  websockets
Node Red Contrib Uibuilder
Easily create data-driven web UI's for Node-RED using any (or no) front-end library. VueJS and bootstrap-vue included but change as desired.
Stars: ✭ 215 (-11.52%)
Mutual labels:  websockets
React Agent
Client and server-side state management library
Stars: ✭ 235 (-3.29%)
Mutual labels:  websockets
Wok
A cherrypy framework for multi-purpose plug-ins
Stars: ✭ 215 (-11.52%)
Mutual labels:  websockets
Nutz Book Project
做个平台
Stars: ✭ 228 (-6.17%)
Mutual labels:  websockets
Devicehive Java Server
DeviceHive Java Server
Stars: ✭ 241 (-0.82%)
Mutual labels:  websockets
Hprose Html5
Hprose is a cross-language RPC. This project is Hprose 2.0 Client for HTML5
Stars: ✭ 237 (-2.47%)
Mutual labels:  websockets
Tributary
Streaming reactive and dataflow graphs in Python
Stars: ✭ 231 (-4.94%)
Mutual labels:  websockets

Turnpike Build Status Coverage Status GoDoc

Go implementation of WAMP - The Web Application Messaging Protocol

WAMP ("The Web Application Messaging Protocol") is a communication protocol that enables distributed application architectures, with application functionality spread across nodes and all application communication decoupled by messages routed via dedicated WAMP routers.

At its core, WAMP provides applications with two asynchronous messaging patterns within one unified protocol:

  • Publish & Subscribe
  • Remote Procedure Calls

This package provides router and client library implementations as well as a basic stand-alone router. The router library can be used to embed a WAMP router in another application, or to build a custom router implementation. The client library can be used to communicate with any WAMP router.

This version of Turnpike supports WAMP v2. For WAMP v1 support see the v1 branch.

Status

Turnpike v2 is still under development, but is getting close to a stable release. If you have any feedback or suggestions, please open an issue.

Installation

Library:

go get -u gopkg.in/jcelliott/turnpike.v2

Stand-alone router:

go get -u gopkg.in/jcelliott/turnpike.v2/turnpike

Client library usage

// TODO

Server library usage

main.go:

package main

import (
	"log"
	"net/http"

	"gopkg.in/jcelliott/turnpike.v2"
)

func main() {
	turnpike.Debug()
	s := turnpike.NewBasicWebsocketServer("example.realm")
	server := &http.Server{
		Handler: s,
		Addr:    ":8000",
	}
	log.Println("turnpike server starting on port 8000")
	log.Fatal(server.ListenAndServe())
}

This creates a simple WAMP router listening for websocket connections on port 8000 with a single realm configured.

You can build it like this:

go build -o router main.go

Which will create an executable in your working directory that can be run like this:

./router

Stand-alone router usage

Run the router with default settings:

$GOPATH/bin/turnpike

Router options:

Usage of turnpike:
  -port int
        port to run on (default 8000)
  -realm string
        realm name (default "realm1")
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].