PackageTrack
Sign in Get early access

zmq-sys

Low-level bindings to the zeromq library

0.12.0 6.5M downloads/mo #3949 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 6 of 15 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

15 releases · first in 2014

0 releases in the last 12 months

see the full history below

Release timeline

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

Releases

latest 15
  1. 0.12.0 04 Nov 2022

    Nothing published for this version

  2. 0.11.0 21 Sep 2019

    Nothing published for this version

  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.6 04 Apr 2015

    Nothing published for this version

  11. 0.6.5 03 Apr 2015

    Nothing published for this version

  12. 0.6.4 01 Apr 2015

    Nothing published for this version

  13. 0.6.2 26 Mar 2015

    Nothing published for this version

  14. 0.6.1 26 Feb 2015

    Nothing published for this version

  15. 0.6.0 09 Dec 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