You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tungstenite-rs/README.md

57 lines
1.8 KiB

# Tungstenite
Lightweight stream-based WebSocket implementation for [Rust](http://www.rust-lang.org).
```rust
/// A WebSocket echo server
let server = TcpListener::bind("127.0.0.1:9001").unwrap();
for stream in server.incoming() {
spawn (move || {
let mut websocket = accept(stream.unwrap());
loop {
let msg = websocket.read_message().unwrap();
websocket.write_message(msg).unwrap();
}
})
}
```
Introduction
------------
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
This library provides an implementation of WebSockets,
[RFC6455](https://tools.ietf.org/html/rfc6455). It allows for both synchronous (like TcpStream)
and asynchronous usage and is easy to integrate into any third-party event loops including
[MIO](https://github.com/carllerche/mio). The API design abstracts away all the internals of the
WebSocket protocol but still makes them accessible for those who wants full control over the
network.
This library is a work in progress. Feel free to ask questions and send us pull requests.
Why Tungstenite?
----------------
It's formerly WS2, the 2nd implementation of WS. WS2 is the chemical formula of
tungsten disulfide, the tungstenite mineral.
Features
--------
Tungstenite provides a complete implementation of the WebSocket specification.
TLS is supported on all platforms using native-tls.
There is no support for permessage-deflate at the moment. It's planned.
Testing
-------
Tungstenite is thoroughly tested and passes the [Autobahn Test Suite](http://autobahn.ws/testsuite/) for
WebSockets. It is also covered by internal unit tests as good as possible.
Contributing
------------
Please report bugs and make feature requests [here](https://github.com/snapview/tungstenite-rs/issues).