-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
150 lines (123 loc) · 8.21 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# Version 0.8.0 - 2023-12-11
- [change][major] Mark `StreamConfig` and `UnixConfig` as non-exhaustive structs.
- [change][major] Make the `MessageHeader::encode/decode()` functions take an `endian` parameter.
- [add][major] Add an `endian` field to `StreamConfig` and `UnixConfig`.
# Version 0.7.1 - 2023-11-26
- [change][patch] Remove dependency on `byteorder` crate.
# Version 0.7.0 - 2023-09-20
- [change][major] Add `hidden` field to items in interface introspection types.
- [add][minor] Add `#[hidden]` attribute for interfaces, services, streams and updates in `interface! { ... }` macro.
- [add][minor] Add documentation about the protocol itself.
- [add][minor] Add `same_peer` function to `PeerWriteHandle` to check if they belong to the same peer.
- [fix][patch] Fix clippy warnings for unnecessary casting.
# Version 0.6.0 - 2023-03-03
- [change][major] Update `filedesc` to `v0.6.0`.
- [change][minor] Update `tokio-seqpacket` to `v0.7.0`.
- [change][minor] Replace `WriteHalfType` and `ReadHalfType` with generic associated types.
- [change][minor] Bump minimum Rust version to 1.65.
# Version 0.5.1 - 2022-05-24
- [fix][patch] Fix version of macro crate dependency.
# Version 0.5.0 - 2022-05-23
- [rename][major] Rename `Server` to `Listener` to avoid confusion with generated interfaces.
- [change][major] Switch to a single opaque error type.
- [rename][major] Rename `Incoming` to `ReceivedMessage`.
- [remove][major] Remove unused `Outgoing` type.
- [rename][major] Rename `PeerHandle::next_message()` to `recv_message()`.
- [change][major] Move message body out of `ReceivedRequest`.
- [change][major] Change `SentRequest/ReceivedRequest::recv_update()` to return an `Option<Message>`.
- [rename][major] Rename `SentRequest` and `ReceivedRequest` to `SentRequestHandle` and `ReceivedRequestHandle`.
- [add][major] Have `Transport` implementations decide which I/O errors are fatal.
- [add][major] Provide transport info when spawning peers without giving access to the transport.
- [add][minor] Add utility functions for working with `RecvMessageError`.
- [add][minor] Add `Transport::info()` function to get information about a transport.
- [add][minor] Allow direct access to the underlying `Transport` of a `Peer`.
- [add][minor] Allow direct access to the underlying stream or socket of a `Transport`.
- [fix][minor] Fix unintended infinite recursion in generic trait implementations.
- [add][minor] Add `interface!()` macro to generate client/server structs with typed interfaces.
- [change][minor] Try unlinking Unix sockets before binding them.
- [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.
- [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-alpha10 - 2022-05-23
- [add][major] Have `Transport` implementations decide which I/O errors are fatal.
- [add][major] Provide transport info when spawning peers without giving access to the transport.
- [add][minor] Add utility functions for working with `RecvMessageError`.
- [add][minor] Add `Transport::info()` function to get information about a transport.
- [add][minor] Allow direct access to the underlying `Transport` of a `Peer`.
- [add][minor] Allow direct access to the underlying stream or socket of a `Transport`.
# 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
- [change][minor] Updated to tokio-seqpacket 0.5.
# Version v0.3.0 - 2020-12-25
- [change][major] Updated to tokio 1.0 and tokio-seqpacket 0.4.
- [change][major] 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.