A sensible and clean way to write WebSocket-capable servers in Haskell. http://jaspervdj.be/websockets

Version on this page:
LTS Haskell 9.18:
Stackage Nightly 2017-12-15:
Latest on Hackage:
Maintained by Jasper Van der Jeugt

Module documentation for

There are no documented modules for this package.

This library allows you to write WebSocket-capable servers.

An example server: https://github.com/jaspervdj/websockets/blob/master/example/server.lhs

An example client: https://github.com/jaspervdj/websockets/blob/master/example/client.hs

See also:


- (2017-07-28)
* Don't use LambdaCase, we want to support older GHC versions

- (2017-07-22)
* Fix Monoid import on older base versions
* Increase lower bound on `binary` to 0.8.1 (by Jonathan Daugherty)

* Add limit options for frame and message size to prevent against (D)DoS
* Fix space leak in encodeMessages (by Roman Borschel)
* Stricter frame/encoding decoding for ping/close frames (by Lars Petersen)

* Fix 0-width reason phrase parsing
* Change receive buffer from 1024 to 8192 bytes (by Ondrej Palkovsky)
* Implement fast masking in C (by Ondrej Palkovsky and myself)
* Some haddock improvements
* Bump `HUnit` dependency to 1.6

* Fix compilation issue with GHC-7.8

* Faster masking (by Dmitry Ivanov)
* Support for IPv6 in the built-in server, client and tests (by agentm)
* Support for `permessage-deflate` extension (by Marcin Tolysz)
* Strict unicode checking and proper extension mechanism

* Fix client specifying empty path
* Allow sending collections of messages (by David Turner)
* Allow sending extra headers when accepting request (by James Deery)

* Bump `HUnit` dependency to 1.5

* Restore state of the package to version ``

* This release contained a feature which broke backwards-compatibility.
Hence, it was marked as broken a new release containing the changes will
be uploaded as ``.

* Fix issue trying to kill builtin server
* Bump `QuickCheck` dependency to 2.9

* Bump `binary` dependency for GHC 8.0 compatibility

* Fix issue with fragmentation test

* Optionally include example server in the cabal file
* Send correct port from client
* Set `TCP_NO_DELAY` in builtin server
* Bump `HUnit` dependency
* Drop dependency on `mtl`
* Fix `QuickCheck` dependency lower bound

* Bugfixes wrt closing sockets and streams

* Add `makePendingConnectionFromStream` function
* Bump `attoparsec` dependency

* Bump `QuickCheck` dependency

* Use a shared closed state for connection input/output stream
* Make sure `runServer` doesn't leak any sockets
* Bump `blaze-builder` dependency

* Bump `random` dependency

* Fix exception handling issues

* Make sending and receiving messages thread-safe by default
* Export `forkPingThread`
* Fix Windows `withSocketsDo` issue

* Don't use Network.ByteString.Lazy.sendAll on Windows

* Allow compilation with older bytestring versions
* Bump text dependency

* Bump various dependencies
* Remove io-streams dependency
* New close mechanism
* More flexible API interface

* Bump QuickCheck dependency

* Bump attoparsec dependency

* Bump entropy dependency

* Bump mtl dependency

* Bump network dependency

* Add benchmark with many open connections
* Update example to use gender-neutral language

* Fix possible leaking of client sockets when connection times out
comments powered byDisqus