The format is based on Keep a Changelog.
- [added] Added the
handshake::http
module and example usage atexamples/hyper_server.rs
to make using Soketto in conjunction with libraries that use thehttp
types (like Hyper) simpler #45 #48 - [added] Allow setting custom headers on the client to be sent to WebSocket servers when the opening handshake is performed #47
- [changed] Expose the
Origin
headers from the client handshake onClientRequest
#35 - [changed] Update handshake error to expose a couple of new variants (
IncompleteHttpRequest
andSecWebSocketKeyInvalidLength
) #35 - [added] Add
send_text_owned
method toSender
as an optimisation when you can pass an ownedString
in #36 - [updated] Run rustfmt over the repository, and minor tidy up #41
- Update examples to Tokio 1 #27
- Update deps and remove unnecessary transients #30
- Add CLOSE reason handling #31
- Fix handshake with case-sensible servers #32
- Added connection ID to log output (#21).
- Added
ClientRequest::path
to access the path requested by the client (See #23 by @mward for details). - Updated
sha-1
dependency to 0.9 (#24).
- Update some
dev-dependencies
.
- Remove all
unsafe
code blocks. - Remove internal use of
futures::io::BufWriter
. Extension::decode
now takes a&mut Vec<u8>
instead of aBytesMut
.Incoming::Pong
contains the PONG payload data slice inline.Data
not longer contains application data, but reports only the number of bytes. The actual data is written directly into the&mut Vec<u8>
parameter ofReceiver::receive
orReceiver::receive_data
.Receiver::into_stream
has been removed.
- Bugfix release.
Codec::encode_header
contained a hidden assumption that ausize
would be 8 bytes long, which is obviously only true on 64-bit architectures. See #18 for details.
- A method
into_inner
to get back the socket has been added tohandshake::{Client, Server}
.
Update to use and work with async/await:
Connection
has been split into aSender
andReceiver
pair with async methods to send and receive data or control frames such as Pings or Pongs.connection::into_stream
has been added to get afutures::stream::Stream
from aReceiver
.- A
connection::Builder
has been added to setup connection parameters.handshake::Client
andhandshake::Server
no longer have aninto_connection
method, but aninto_builder
one which returns theBuilder
and allows further configuration. base::Data
has been moved todata
. In additiondata::Incoming
supports control frame data.base::Codec
no longer implementsEncoder
/Decoder
traits but has inherent methods for encoding and decoding websocket frame headers.base::Frame
has been removed. Thebase::Codec
only deals with headers.- The
handshake
module contains separate sub-modules forclient
andserver
handshakes. Some handshake related types have been refactored slightly. Extension
sdecode
methods work on&mut BytesMut
parameters instead ofData
. Forencode
a new typeStorage
has been added which unifies different types of data, i.e. shared, unique and owned data.
- Maintenance release.
- Improved handshake header matching which is now more robust and can cope with repeated header names and comma separated values.
- The DEFLATE extension now allows custom maximum window bits for client and server.
- Fix handling of reserved bits in base codec.
- Change
Extension
trait and add an optional DEFLATE extension (RFC 7692). For now the possibility to use reserved opcodes in extensions is not enabled. The DEFLATE extension does not support setting of window bits other than 15 currently. - Limit the max. buffer size in
Connection
(seeConnection::set_max_buffer_size
).
Initial release.