- FIX (untracked) NuGet package now includes XMLDocs (
fszmq.xml
), which were accidentally omitted from last release
- IMPORTANT!
fszmq
is now shipped as a .NET Standard library only (currently .NET Standard 2)!
- FIX (untracked)
Socket.sendAll
no long enumerates the input sequence multiple times (thanks to cboudereau)
- NuGet package now specifies the minimum required version of its dependencies
- Version bump (attempting to address NuGet.org issues)
- FIX (untracked)
Socket.getOptionWithBuffer
, Socket.getOption
fail when reading boolean options
- NEW API - safer, more discoverable API for socket options using a mixture of unions, active patterns (thanks to Daniel Fabian)
- socket types (as part of context API) now safer with units-of-measure (thanks to Daniel Fabian)
- FIX (untracked) - corrected small issue with recieving EINTR during
Context
termination
- FIX for Issue #121 -
Socket.sendAll
treats an empty container as an empty 1-frame message (patched by coconaut)
- FIX for Issue #125 -
Context
, Socket
, and Message
no longer raise exceptions during finalization (though they will assert in DEBUG builds)
- FIX for Issue #124 - Improved a few vague error messages
- FIX for Issue #93 -
Z85.encode
and Z85.decode
no longer fail on empty inputs
- Added support for
zmq_proxy_steerable
; see the Proxying
and ProxyingExtensions
modules
- Switched native handles on
Context
, Socket
, and Message
types (back) to public visibility
- Added extension methods to simplify using
Version
from languages other than F#
- Added
Socket.tryRecvInto
(mostly so languages other than F# don't have to acknowledge the Option<'t>
type)
- Added
Message.configure
function
- Added missing socket options and other constants needed for 4.0.x completeness
- Support for libzmq-4.1.x ...
ZMQ.has
function and Capabilities
type
- Support for libzmq-4.1.x ...
Message.tryGetMetadata
function (equivalent to zmq_msg_gets
)
- Support for libzmq-4.1.x ...
Message.tryLoadMetadata
function (for languages where the Option<'t>
type is uncommon)
- Support for libzmq-4.1.x ... various constants related to socket options, context options, and message options
- Support for libzmq-4.1.x ... addressed errors caused by
zmq_msg_t
allocation size
- Core types (
Message
, Socket
, and Context
) now support referential equality based on underlying native handle
- Calling
ToString()
on core types (Message
, Socket
, and Context
) now includes the value of the native handle
Context
is now thread-safe in its managment of attached Socket
instances
- Added
Message.isMatch
for comparing contents of Message
instances
- Added operators (|<<) and (>>|) as directinal aliases for
Message.recv
- !BREAKING!
Message.tryRecv
now returns a boolean rather than an Option<byte[]>
- !BREAKING!
Message.recv
now returns Unit rather than an Option<byte[]>
- !BREAKING!
Message.tryRecv
and Message.recv
now take a Message
instance as an argument
- !BREAKING! Order of arguments has been reversed on
Message.send
and Message.sendMore
- Split project into Mac-friendly and Windows-friendly solutions
- Removed the need for compiling with
--define:BSD_EAGAIN
- Fixed bugs related to LINGER being set during
Socket
disposal
Context
now tracks and disposes any Socket
instances associated with it
- Improved
Message
constructor usage from languages other than F#
- !BREAKING! The
Handle
property on Message
, Socket
, and Context
instances is now internal
- Updated bundled libzmq.dll to version 4.0.6
- Fixed bugs related to LINGER being set during
Socket
disposal
Context
now tracks and disposes any Socket
instances associated with it
- Improved
Message
constructor usage from languages other than F#
- !BREAKING! The
Handle
property on Message
, Socket
, and Context
instances is now internal
- Added assembly-level Extension attribute
- Removed unused P/Invoke functions (last vestiges of Timing module)
- Refactored monitoring API to include convenience functions (also extension methods)
- updated libzmq to 4.0.5
- Fixed working-directory pathing in
Scratch.fsx
to be properly relative
- Added methods to simplify polling a single socket for input (see tryPollIn,TryGetInput)
- !BREAKING! Removed Timing module
- !BREAKING! Changed poll function to DoPoll when called from other CLR languages
- !BREAKING! Normalized many function names in the Message, Context, and Socket modules
- !BREAKING! Changed
pollIO
function to PollIO
when called from other CLR languages
- !BREAKING! Changed
Proxingy.proxy
to return unit
- Fixed potential memory leak in
Message.tryRecv
- Tracked against zeromq4x (stable repo)
- Message type now has a corresponding suite of functions in the Message module
- Added utility functions for timing (see Timing module)
- Added utility functions for Base85 encoding (see Z85 module)
- Added utility functions for CURVE security (see Curve module). WARNING: experimental!
- Added unit tests
- Added API documentation
- Added narrative examples
- Refactored performance tests
- NuGet package now installs either x86 or x64 version of libzmq.dll (based on project configuration)
- NuGet package now has proper uninstaller
- Experimental message-passing functions
- Migrated code license to LGPLv3
- Migrated documentation license to MIT/X11
- Enhanced solution structure (tests, deployment, docs, et cetera)
- Upgraded to latest libzmq.dll