PackageTrack
Sign in Get early access

zmq

High-level bindings to the zeromq library

0.10.0 6.4M downloads/mo #3996 most downloaded on crates.io erickt/rust-zmq

What this package is like to depend on

Last release 4 years ago

no release in 18 months

Ships unpredictably

gaps range from 8 days to 3.1 years

Some releases are documented

notes for 8 of 19 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

19 releases · first in 2014

0 releases in the last 12 months

see the full history below

Release timeline

19 releases · Nov 2014 to Nov 2022
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 19
  1. 0.10.0 04 Nov 2022
    Release notes

    What's Changed

    This release mostly pushes rust-zmq to be on par with upstream zmq 4.3.4 that was released earlier this year, which the major feature there being added websocket support.

    We have also worked hard to remove the cmake dependency from this project, meaning that no additional developer setup instructions are needed for downstream users of this crate.

    Changelog

    New Contributors

    Full Changelog: v0.9.2...v0.10.0

    Open source →
  2. 0.9.2 21 Sep 2019
    Release notes

    New and improved functionality

    • Support for the ZMQ_REQ_RELAXED and ZMQ_REQ_CORRELATE socket options, implemented in #285.

    Compatibility

    • SocketType, Mechanism, and Error can not longer be cast to an integer type and expected to get the corresponding libzmq C-level value. The ability to cast to integers and get the C enum values was never a documented part of the API, so this is not considered a breaking change.

      Unfortunately, the SocketEvent can not be future-proofed in this way; the monitoring API needs breaking changes to gain a reasonable level of type-safety.

    Fixes

    • A potential panic in Message::gets involving messages with non-UTF8 property values has been fixed; see #288.
    Open source →
    Release notes

    New and improved functionality

    • Support for the ZMQ_REQ_RELAXED and ZMQ_REQ_CORRELATE socket options, implemented in #285.

    Compatibility

    SocketType , Mechanism , and Error can not longer be cast to an integer type and expected to get the corresponding libzmq C-level value. The ability to cast to integers and get the C enum values was never a documented part of the API, so this is not considered a breaking change.

    Unfortunately, the SocketEvent can not be future-proofed in this way; the monitoring API needs breaking changes to gain a reasonable level of type-safety.

    Fixes

    • A potential panic in Message::gets involving messages with non-UTF8 property values has been fixed; see #288.
    Open source →
  3. 0.9.1 30 May 2019
    Release notes

    New and improved functionality

    • Added vendored feature which build libzmq from source via zeromq-src, see the README for details; discussed in #257 and implemented in #267.

    • The installed libzmq C library is no longer feature-probed at build time, and all the wrapped API is exposed. Using features unsupported by the installed libzmq library will lead to run-time errors, like they would in C.

      This should enable cross-compiling without jumping through additional hoops.

      Implemented in #276.

    • The Message data type now implements From<Box<[u8]>.

    • The Message data type has gained a new constructor with_size, which replaces the now-deprecated, confusingly-named with_capacity constructor. Reported in #215 and fixed in #272.

    • New functions proxy_steerable and proxy_steerable_with_capture, which wrap the zmq_proxy_steerable C function. Implemented in #242.

    Deprecations

    • The Message constructors with_capacity_unallocated, with_capacity and from_slice methods are deprecated, the first one without a planned alternative (#272).

    Platform requirements

    • The codebase has been switched to the Rust 2018 edition and requires rustc 1.32.0 or newer. Compatibility back to 1.32.0 is now ensured via CI.
    Open source →
    Release notes

    New and improved functionality

    Added vendored feature which build libzmq from source via zeromq-src , see the README for details; discussed in #257 and implemented in #267.

    The installed libzmq C library is no longer feature-probed at build time, and all the wrapped API is exposed. Using features unsupported by the installed libzmq library will lead to run-time errors, like they would in C.

    This should enable cross-compiling without jumping through additional hoops.

    Implemented in #276.

    The Message data type now implements From<Box<[u8]> .

    The Message data type has gained a new constructor with_size , which replaces the now-deprecated, confusingly-named with_capacity constructor. Reported in #215 and fixed in #272.

    New functions proxy_steerable and proxy_steerable_with_capture , which wrap the zmq_proxy_steerable C function. Implemented in #242.

    Deprecations

    • The Message constructors with_capacity_unallocated , with_capacity and from_slice methods are deprecated, the first one without a planned alternative (#272).

    Platform requirements

    • The codebase has been switched to the Rust 2018 edition and requires rustc 1.32.0 or newer. Compatibility back to 1.32.0 is now ensured via CI.
    Open source →
  4. 0.9.0 14 Dec 2018
    Release notes

    Incompatible API changes

    • Requires ZeroMQ 4.1+.

    • The deprecated Constants enum has been removed from the API.

    • Message allocation, e.g. Message::new() directly returns Message instead of Result<Message> and will panic on allocation failure, as is customary in Rust. Reported in #118 and fixed by #130.

    New and improved functionality

    • Message now implements From 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 on Into<Message> types, obsoleting send_msg() and send_str().

    • Added support for connection timeouts, heartbeats, and xpub welcome messages.

    Deprecations

    • Message::send_msg() and send_str() are deprecated in favor of Message::send().
    Open source →
    Release notes

    Incompatible API changes

    Requires ZeroMQ 4.1+.

    The deprecated Constants enum has been removed from the API.

    Message allocation, e.g. Message::new() directly returns Message instead of Result<Message> and will panic on allocation failure, as is customary in Rust. Reported in #118 and fixed by #130.

    New and improved functionality

    Message now implements From 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 on Into<Message> types, obsoleting send_msg() and send_str() .

    Added support for connection timeouts, heartbeats, and xpub welcome messages.

    Deprecations

    • Message::send_msg() and send_str() are deprecated in favor of Message::send() .
    Open source →
  5. 0.8.3 19 May 2019
    Release notes

    New and improved functionality

    • Support for the zmq_socket_monitor API.
    • Added PollItem::set_events, which allows for constructing a PollItem from arbitrary file descriptors.

    Bug fixes

    • Fix feature detection for zmq_has (issue #207).
    Open source →
    Release notes

    New and improved functionality

    • Support for the zmq_socket_monitor API.

    • Added PollItem::set_events , which allows for constructing a PollItem from arbitrary file descriptors.

    Bug fixes

    • Fix feature detection for zmq_has (issue #207).
    Open source →
  6. 0.8.2 27 Jul 2017
    Release notes

    New and improved functionality

    • Support for the ZMQ_PROBE_ROUTER and ZMQ_ROUTER_MANDATORY socket options.
    • zmq_disconnect is now exposed as Socket::disconnect.

    Bug fixes

    • Fix build on OpenBSD (issue #170).
    • Account for OpenBSD not defining EPROTO.
    • Fix build for 32-bit Windows.
    • Handle EINTR in Error::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.
    Open source →
    Release notes

    New and improved functionality

    • Support for the ZMQ_PROBE_ROUTER and ZMQ_ROUTER_MANDATORY socket options.

    • zmq_disconnect is now exposed as Socket::disconnect .

    Bug fixes

    • Fix build on OpenBSD (issue #170).

    • Account for OpenBSD not defining EPROTO .

    • Fix build for 32-bit Windows.

    • Handle EINTR in Error::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.

    Open source →
  7. 0.8.1 01 Jan 2017
    Release notes

    This release fixes the remaining Windows-specific issues exposed by our test suite, as well as improving API convenience a bit.

    New and improved functionality

    • Should now work on Windows.
    • Message now provides the Eq trait.
    • From<Error> is now provided for std::io::Error (issue #136).
    • There is now a type alias PollEvents mapping to i16. Use that instead of i16 to refer to a set of poll events; in 0.9, PollEvents will become a separate type.
    • PollItem now has methods is_readable, is_writable and is_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 Unix poll(2).

    Incompatible API changes

    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 to RawFd on Unixoids and RawSocket on Windows. Socket::get_fd() and PollItem::from_fd() now use that instead of i64 and c_int, respectively.
    Open source →
    Release notes

    This release fixes the remaining Windows-specific issues exposed by our test suite, as well as improving API convenience a bit.

    New and improved functionality

    • Should now work on Windows.

    • Message now provides the Eq trait.

    • From<Error> is now provided for std::io::Error (issue #136).

    • There is now a type alias PollEvents mapping to i16 . Use that instead of i16 to refer to a set of poll events; in 0.9, PollEvents will become a separate type.

    • PollItem now has methods is_readable , is_writable and is_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 Unix poll(2) .

    Incompatible API changes

    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 to RawFd on Unixoids and RawSocket on Windows. Socket::get_fd() and PollItem::from_fd() now use that instead of i64 and c_int , respectively.
    Open source →
  8. 0.8.0 09 Dec 2016
    Release notes

    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.

    Incompatible API changes

    The following methods of Socket changed:

    • The deprecated close() method has been removed.
    • to_raw() is now known as into_raw().
    • borrow_raw() is known as as_mut_ptr(), and takes a &mut self now.

    New and improved functionality

    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 and CurveKeyPair data types.
    • Wrappers for the Z85 codec (z85_encode and z85_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 (aka CURVE) options.
    • New zguide examples fileio3, msreader, rtdealer, lvcache, pathopub and pathosub.
    • There now is a test suite.

    Deprecations

    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.

    Bugfixes

    Yes, there have been bugs that were fixed; hopefully for the next releases, a reasonably accurate list of those will be provided.

    Internals

    Some redundancy in error handling and socket option handling has been abstracted over using macros.

    Open source →
    Release notes

    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.

    Incompatible API changes

    The following methods of Socket changed:

    • The deprecated close() method has been removed.

    • to_raw() is now known as into_raw() .

    • borrow_raw() is known as as_mut_ptr() , and takes a &mut self now.

    New and improved functionality

    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 and CurveKeyPair data types.

    • Wrappers for the Z85 codec ( z85_encode and z85_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 (aka CURVE ) options.

    • New zguide examples fileio3 , msreader , rtdealer , lvcache , pathopub and pathosub .

    • There now is a test suite.

    Deprecations

    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.

    Bugfixes

    Yes, there have been bugs that were fixed; hopefully for the next releases, a reasonably accurate list of those will be provided.

    Internals

    Some redundancy in error handling and socket option handling has been abstracted over using macros.

    You can’t perform that action at this time.

    Open source →
  9. 0.7.0 26 Jun 2015

    Nothing published for this version

  10. 0.6.7 22 Apr 2015

    Nothing published for this version

  11. 0.6.6 04 Apr 2015

    Nothing published for this version

  12. 0.6.5 03 Apr 2015

    Nothing published for this version

  13. 0.6.4 01 Apr 2015

    Nothing published for this version

  14. 0.6.3 30 Mar 2015

    Nothing published for this version

  15. 0.6.2 26 Mar 2015

    Nothing published for this version

  16. 0.6.1 26 Feb 2015

    Nothing published for this version

  17. 0.6.0 09 Dec 2014

    Nothing published for this version

  18. 0.5.2 21 Nov 2014

    Nothing published for this version

  19. 0.5.1 11 Nov 2014

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive