- 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
, andMessage
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
andZ85.decode
no longer fail on empty inputs
- Added support for
zmq_proxy_steerable
; see theProxying
andProxyingExtensions
modules - Switched native handles on
Context
,Socket
, andMessage
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 theOption<'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 andCapabilities
type - Support for libzmq-4.1.x ...
Message.tryGetMetadata
function (equivalent tozmq_msg_gets
) - Support for libzmq-4.1.x ...
Message.tryLoadMetadata
function (for languages where theOption<'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
, andContext
) now support referential equality based on underlying native handle - Calling
ToString()
on core types (Message
,Socket
, andContext
) now includes the value of the native handle Context
is now thread-safe in its managment of attachedSocket
instances- Added
Message.isMatch
for comparing contents ofMessage
instances - Added operators (|<<) and (>>|) as directinal aliases for
Message.recv
- !BREAKING!
Message.tryRecv
now returns a boolean rather than anOption<byte[]>
- !BREAKING!
Message.recv
now returns Unit rather than anOption<byte[]>
- !BREAKING!
Message.tryRecv
andMessage.recv
now take aMessage
instance as an argument - !BREAKING! Order of arguments has been reversed on
Message.send
andMessage.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 anySocket
instances associated with it- Improved
Message
constructor usage from languages other than F# - !BREAKING! The
Handle
property onMessage
,Socket
, andContext
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 anySocket
instances associated with it- Improved
Message
constructor usage from languages other than F# - !BREAKING! The
Handle
property onMessage
,Socket
, andContext
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 toPollIO
when called from other CLR languages - !BREAKING! Changed
Proxingy.proxy
to returnunit
- 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