This release will focus on API corrections and improving documentation.
-
The deprecated
Constants
enum has been removed from the API. -
Message allocation, e.g.
Message::new()
directly returnsMessage
instead ofResult<Message>
and will panic on allocation failure, as is customary in Rust. Reported in #118 and fixed by #130.
-
Message
now implementsFrom
for various types that have an obvious byte-level representation. This is possible due to the message allocation API change (see above). -
Message::send()
now works onInto<Message>
types, obsoletingsend_msg()
andsend_str()
.
Message::send_msg()
andsend_str()
are deprecated in favor ofMessage::send()
.
- Support for the
ZMQ_PROBE_ROUTER
andZMQ_ROUTER_MANDATORY
socket options. zmq_disconnect
is now exposed asSocket::disconnect
.
- Fix build on OpenBSD (issue #170).
- Account for OpenBSD not defining
EPROTO
. - Fix build for 32-bit Windows.
- Handle
EINTR
inError::from_raw
(issue #174). - Alignment of
zmq_msg_t
FFI type fixed. - Fix
build.rs
to portably construct paths, instead of hard-coding slash as path separator.
This release fixes the remaining Windows-specific issues exposed by our test suite, as well as improving API convenience a bit.
- Should now work on Windows.
Message
now provides theEq
trait.From<Error>
is now provided forstd::io::Error
(issue #136).- There is now a type alias
PollEvents
mapping toi16
. Use that instead ofi16
to refer to a set of poll events; in 0.9,PollEvents
will become a separate type. PollItem
now has methodsis_readable
,is_writable
andis_error
; use those in preference to using bit masking operations when applicable.- New example zguide example
mspoller
. - Some documentation improvements.
- There is now a Unix-specific test integrating
zmq
with Unixpoll(2)
.
There has been a minor API change that was deemed necessary for cross-platform support and to fix broken parts of the API:
- There is now an internal
RawFd
type alias that maps toRawFd
on Unixoids andRawSocket
on Windows.Socket::get_fd()
andPollItem::from_fd()
now use that instead ofi64
andc_int
, respectively.
This is a feature and bugfix release. The API has changed, partially
in slightly incompatible ways. Typical code, for some suitable value
of "typical", should still compile when it did with 0.7, but expect a
lot of warnings due to reduced mutability requirements for Socket
and Context
.
Note that this release adds initial support for the Windows platform (PR #124). While the code now compiles, the test suite is still broken under Windows (issue #125).
Since these release notes have been assembled post-hoc, they are highly likely to be incomplete.
The following methods of Socket
changed:
- The deprecated
close()
method has been removed. to_raw()
is now known asinto_raw()
.borrow_raw()
is known asas_mut_ptr()
, and takes a&mut self
now.
Note that the added CURVE
and GSSAPI
parts of the API are
conditional, depending on the compile-time detected capabilities of
libzmq.
- Most methods of
Socket
no longer require&mut self
. Context
now can be shared across threads- rust-zmq should now work across a wider range of libzmq versions.
- More functions now have minimal documentation, but there is still lots of improvements to make in this area.
- Initial API coverage for encryption via the
Mechanism
andCurveKeyPair
data types. - Wrappers for the Z85 codec (
z85_encode
andz85_decode
). - New socket option accessors for:
ZMQ_LAST_ENDPOINT
ZMQ_IMMEDIATE
ZMQ_PROBE_ROUTER
,ZMQ_ROUTER_MANDATORY
ZMQ_RCVTIMEO
,ZMQ_SNDTIMEO
- Various Kerberos (aka
GSSAPI
) and encryption-related (akaCURVE
) options.
- New zguide examples
fileio3
,msreader
,rtdealer
,lvcache
,pathopub
andpathosub
. - There now is a test suite.
Constants
will be removed from public API in the next release; it
should not be needed in client code, since corresponding functionality
is provided in a higher-level form.
Yes, there have been bugs that were fixed; hopefully for the next releases, a reasonably accurate list of those will be provided.
Some redundancy in error handling and socket option handling has been abstracted over using macros.