# Version 0.5.0-alpha9 - 2022-04-26
- [fix][minor] Fix unintended infinite recursion in generic trait implementations.
- [fix][patch] Fix `needless_question_mark` clippy warnings in generated code.
- [change][patch] Switch to `clap` v3 in the examples.

# Version 0.5.0-alpha8 - 2022-01-25
- [rename][major] Rename `crate::util::format` module to `crate::format`.
- [add][minor] Add runtime interface introspection.
- [fix][minor] Remove the `Sized` restriction for the `EncodeBody` trait.
- [impl][patch] Use `poll_write_vectored` in the TCP transport to write the header and body with a single syscall.
- [add][patch] Add Wireshark dissector for TCP and UDP transports for easier debugging.

# Version 0.5.0-alpha7 - 2022-01-10
- [add][minor] Add a specific `Format` trait for generated interaces to avoid writing overly long trait bounds.

# Version 0.5.0-alpha6 - 2021-11-30
- [fix][minor] Make sure that decode errors are `Send` in all cases.

# Version 0.5.0-alpha5 - 2021-11-30
- [add][minor] `interface!(...)` now generates an `Interface` struct for introspection.
- [change][major] `interface!(...)` no longer generates a module for the created items.
- [change][major] Allow access to unknown and invalid messages in generated interfaces.
- [change][minor] Try unlinking Unix sockets before binding them.
- [impl][patch] The code generated by `interface!(...)` now suppresses some clippy warnings.

# Version 0.5.0-alpha4 - 2021-09-27
- [add][minor] Add missing `write_handle()` functions for `ReceivedRequest` and `SentRequest` in generated interfaces.

# Version 0.5.0-alpha3 - 2021-09-23
- [fix][minor] Make write handles cloneable regardless of their generic parameters.

# Version 0.5.0-alpha2 - 2021-09-22
- [add][minor] Implement `Clone` for the write handles of generated interfaces.

# Version 0.5.0-alpha1 - 2021-08-31
- [change][major] Renamed `PeerHandle::next_message()` to `recv_message()`.
- [change][major] Moved message body out of `ReceivedRequest`.
- [change][major] Changed `SentRequest/ReceivedRequest::recv_update()` to return an `Option<Message>`.
- [change][major] Renamed `Incoming` to `ReceivedMessage`.
- [change][major] Renamed `SentRequest` and `ReceivedRequest` to `SentRequestHandle` and `ReceivedRequestHandle`.
- [change][major] Switched to a single opaque error type.
- [change][major] Renamed `Server` to `Listener` to avoid confusion with generated interfaces.
- [remove][major] Removed unused `Outgoing` type.
- [remove][major] Removed all old error types and the `error` module.
- [add][minor] Add `SentRequestWriteHandle` and `ReceivedRequestWriteHandle` to support parallel reading and writing.
- [add][minor] Add `Body::as_error()` and `Body::into_error()` as required functions on the `Body` trait.
- [fix][patch] Fixed accepting connections with Unix stream sockets.

# Version v0.4.2 - 2021-05-20
- [fix][patch] Fixed bug where a sent request was untracked once a response to a received request was sent.

# Version v0.4.1 - 2021-04-25
- [fix][patch] Fixed reading messages with empty body with the `StreamTransport`.
- [fix][patch] Fixed documentation on how to receive messages on a `SentRequest`.

# Version v0.4.0 - 2021-02-09
- [change][major] Renamed `ReceivedRequest::next_message()` to `recv_update()`.
- [change][major] Split `SentRequest::next_message()` in `recv_update()` and `recv_response()`.
- [change][major] Renamed `NextMessageError` to `RecvMessageError`.
- [remove][major] Removed `error::ProcessIncomingMessageError` from public the API.

# Version v0.3.1 - 2021-01-27
- Updated to tokio-seqpacket 0.5.

# Version v0.3.0 - 2020-12-25
- Updated to tokio 1.0 and tokio-seqpacket 0.4.
- Removed meaningless addresses from Accept implementation for Unix sockets.

# Version v0.2.1 - 2020-09-03
- [fix][patch] Fixed link in README.

# Version v0.2.0 - 2020-09-03
- [change][major] Changed body date to use `Vec<u8>` instead of `Box<[u8]>`.
- [change][major] Moved transport traits and implementations to `transport` module.
- [change][major] Moved some traits to `util` module.
- [change][major] Renamed `into_transport_default()` to `into_default_transport()`.
- [remove][major] Made `RequestTracker` a private implementation detail.
- [add][minor] Added `Peer::connect` function.
- [add][minor] Added `Server::bind` function.

# Version v0.1.4 - 2020-10-04
- [fix][patch] Regenerate `README.md` from library documentation.

# Version v0.1.3 - 2020-10-13
- [fix][patch] Fixed link of `docs.rs` badge in README.

# Version v0.1.2 - 2020-10-13
- [fix][patch] Fixed links to documentation in README.

# Version v0.1.1 - 2020-10-13
- [fix][patch] Build `docs.rs` documentation with all transports enabled.

# Version v0.1.0 - 2020-10-13
- [add][major] Initial release.
