Releases: jeikabu/nng.NETCore
Releases · jeikabu/nng.NETCore
v1.4.0-rc0
As features have been added to this library the naming convention has changed and there have been a few mistakes along the way:
- There's little indication which classes are low-level wrappers around NNG types (like
AsyncCtx
) and which are high-level C# implementations (likeAsyncContext
) - Some low-level wrappers match NNG naming and some don't;
Message
vsnng_msg
- Some interfaces match implementations and some don't;
Dialer/IDialer
vsAlloc/IMemory
Changes
- [email protected]
- Retiring Subor.nng.NETCore package, all further releases will be as nng.NET
- Breaking changes:
- fix #88 Enforce various
*AsyncContext
wrappers use correct sockets*AsyncContext.Create()
methods take ISocket when they should accept more specific (e.g. ISendSocket)
- Renamed classes:
- AsyncIO => NngAio
- AsyncCtx => NngCtx
- Alloc/IMemory => NngAlloc/INngAlloc
- Dialer/IDialer => NngDialer/INngDialer
- Listener/IListener => NngListener/INngListener
- Message/IMessage/NngMessageHeader/IMessagePart => NngMsg/INngMsg/NngMsgHeader/INngMsgPart
- Socket/ISocket => NngSocket/INngSocket
- Pipe/IPipe => NngPipe/INngPipe
- IStat => INngStat
- Renamed properties:
- Various properties providing access to
nng_*
structs are now allNativeNngStruct
- Various properties providing access to
- Message
Dup()
returnsNngResult
rather than throwing anNngException
on failure
- fix #88 Enforce various
- Removed obsoleted code:
- .Net Framework support; only .NET Core and .NET 5 are supported
ICtx
; instead of downcasting toICtx
useIHasCtx.Ctx
- Factory
Pair0Open
andPair1Open
; usePairOpen
- NNG library binaries built with
-DNNG_ELIDE_DEPRECATED=ON
to remove old getopt/setopt functions
v1.3.2-rc2
v1.3.2-rc1
- fix #48 Stream API
- Wrapping and tests for
nng_stream_*
family of functions - Usage example in
StreamTests.cs
- Wrapping and tests for
- fix #53 Iov for vectored I/O
- Primarily used by stream API
- Usage example in
AioTests.cs::Iov()
- Using
nng_iov
is currently clumsy and will be improved - WARNING: the
nng_iov
structs themselves are copied but the buffers pointed to byiov_buf
are not (see nng_aio_set_iov)
- Factory support to create lower-level ctx/aio wrappers
- See
CreateCtx
andCreateAio
in Factory/INngAsyncFactory - Aio functionality in AsyncBase/IAsyncContext moved to AsyncIO/INngAio
- INngAio includes most
nng_aio_*
functions to assist writingAioCallback
implementations - Breaking Change:
AioCallback
moved from UnsafeNativeMethods.AioCallback to nng.Shared.dll::nng.AioCallback
- See
v1.3.1-rc0
- NNG v1.3.1
- fix #61 async context with nng_ctx more accessible
- Previously needed downcast to
ICtx
that could fail to accessCtx
property - Now
IAsyncContext
implementations with nng_ctx implementIHasCtx
interface that provides at compile-time rather than requiring runtime cast - Mark
ICtx
obsolete so it can be deprecated and removed - Surveyor needed new AsyncContext interface because it is like ISendReceiveX but also
IHasCtx
(has nng_ctx)
- Previously needed downcast to
- fix #73 New factories. Deprecate: pair v1 poly, Factory.PairXOpen
- Replace
nng.Tests.TestFactory
withnng.Factories.Compat.Factory
andLatest.Factory
- Deprecate
Factory.Pair0Open
andPair1Open
in favor of more genericPairOpen
- Pair v1 poly deprecated in NNG v1.3.0
- Replace
v1.3.0-rc1
- Fix Dispose’d aio contexts. AsyncContexts no longer maintain a static list to prevent GC’d callbacks from being invoked from native code. Dispose now calls
nng_aio_stop
instead ofnng_aio_cancel
. - Sockets now implement
IHasSocket
so higher level interfaces can be applied. E.g. SubSocket now implementsISubscriber
. SendMsg
andSendZeroCopy
now pass ownership of data to native code to avoid incorrect memory handling (#80).
v1.3.0-rc0
- NNG v1.3.0
Known Issues
NngMsg::Clear()
clears the body and header, previously it only cleared the body
v1.2.4-rc1
-Factory provides Pair0Open and Pair1Open for pair v0 and v1 sockets, respectively. Ambiguous PairOpen (implicitly v1) removed.
v1.2.4-rc0
- [email protected]
- Message supports operations taking
IntPtr
so it's easier to work with Marshal, etc.