twists

Crates.iotwists
lib.rstwists
version0.2.1
sourcesrc
created_at2017-02-11 20:04:04.452239
updated_at2017-03-21 13:11:56.313051
descriptionExample WebSocket Echo Server implemented with twist
homepagehttps://github.com/rustyhorde/twists
repositoryhttps://github.com/rustyhorde/twists
max_upload_size
id8475
size38,774
Jason Ozias (CraZySacX)

documentation

https://github.com/rustyhorde/twists

README

twists

Example WebSocket echo server implemented with twist based on tokio

TODO

The base library twist does not yet implement all of RFC 6455. For example, protocols and exntension passed in the client header are ignored. This will come in time.

Install

Install twists with cargo

cargo install twists

Running

By default twists will listen for incoming connections at 127.0.0.1:11579

twists

You can test with the wscat utility

wscat ws://127.0.0.1:11579 -k 5

The above will send a ping frame every 5 seconds. You should see pongs back. Also text frames will be echoed back.

Help

Command line help

twists --help

Examples

Enable trace output

twist -vvv

Change the unsecure address and port

twist -a 10.0.0.0 -p 12345

TLS Support

twists has support for listen for TLS connections. To enable, you need a valid .pfx file. twists uses native-tls, and native-tls requires a valid pfx file with password. By default, twists will run on port 32276. This can be changed via the tlsport command line argument.

export PFX_PWD='the password for the pfx file'
twists -a 10.x.x.x --with-tls -f path/to/pfx

I use fish shell, so

set -lx PFX_PWD 'the password for the pfx file'
twists -a 10.x.x.x --with-tls -f path/to/pfx

Autobahn Test Suite Results

Results

Notes: The secure results reflect a connection out over the internet and back. This is due to the hostname requirements of TLS and the need for a valid (read: not self-signed) certificate.

Commit count: 0

cargo fmt