Skip to content

Releases: jeikabu/nng.NETCore

v1.4.0-rc0

10 Feb 09:09
Compare
Choose a tag to compare

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 (like AsyncContext)
  • Some low-level wrappers match NNG naming and some don't; Message vs nng_msg
  • Some interfaces match implementations and some don't; Dialer/IDialer vs Alloc/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 all NativeNngStruct
    • Message Dup() returns NngResult rather than throwing an NngException on failure
  • Removed obsoleted code:
    • .Net Framework support; only .NET Core and .NET 5 are supported
    • ICtx; instead of downcasting to ICtx use IHasCtx.Ctx
    • Factory Pair0Open and Pair1Open; use PairOpen
    • NNG library binaries built with -DNNG_ELIDE_DEPRECATED=ON to remove old getopt/setopt functions

v1.3.2-rc2

04 Feb 15:16
Compare
Choose a tag to compare
  • fix #91 Pipe support
    • Initial pipe support, in particular to register for pipe events
    • See PipeTests.cs for examples
  • fix #52 Publisher ctx support
  • Subscribe/Unsubscribe extension methods now exist for both sockets and async contexts

v1.3.2-rc1

18 Jan 21:08
Compare
Choose a tag to compare
  • fix #48 Stream API
    • Wrapping and tests for nng_stream_* family of functions
    • Usage example in StreamTests.cs
  • 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 by iov_buf are not (see nng_aio_set_iov)
  • Factory support to create lower-level ctx/aio wrappers
    • See CreateCtx and CreateAio in Factory/INngAsyncFactory
    • Aio functionality in AsyncBase/IAsyncContext moved to AsyncIO/INngAio
    • INngAio includes most nng_aio_* functions to assist writing AioCallback implementations
    • Breaking Change: AioCallback moved from UnsafeNativeMethods.AioCallback to nng.Shared.dll::nng.AioCallback

v1.3.1-rc0

03 Aug 12:26
Compare
Choose a tag to compare
  • NNG v1.3.1
  • fix #61 async context with nng_ctx more accessible
    • Previously needed downcast to ICtx that could fail to access Ctx property
    • Now IAsyncContext implementations with nng_ctx implement IHasCtx 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)
  • fix #73 New factories. Deprecate: pair v1 poly, Factory.PairXOpen
    • Replace nng.Tests.TestFactory with nng.Factories.Compat.Factory and Latest.Factory
    • Deprecate Factory.Pair0Open and Pair1Open in favor of more generic PairOpen
    • Pair v1 poly deprecated in NNG v1.3.0

v1.3.0-rc1

27 Jun 11:55
Compare
Choose a tag to compare
  • 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 of nng_aio_cancel.
  • Sockets now implement IHasSocket so higher level interfaces can be applied. E.g. SubSocket now implements ISubscriber.
  • SendMsg and SendZeroCopy now pass ownership of data to native code to avoid incorrect memory handling (#80).

v1.3.0-rc0

11 Jun 14:44
Compare
Choose a tag to compare
  • NNG v1.3.0

Known Issues

  • NngMsg::Clear() clears the body and header, previously it only cleared the body

v1.2.4-rc1

04 Mar 14:10
Compare
Choose a tag to compare

-Factory provides Pair0Open and Pair1Open for pair v0 and v1 sockets, respectively. Ambiguous PairOpen (implicitly v1) removed.

v1.2.4-rc0

14 Jan 09:40
Compare
Choose a tag to compare

v1.2.3-rc0

13 Jan 13:41
Compare
Choose a tag to compare

v1.1.1-0

15 Feb 00:56
2fa797c
Compare
Choose a tag to compare
Merge pull request #44 from subor/dev

v1.1.1