Gammazero Nexus Versions Save

Full-feature WAMP v2 router and client written in Go

v3.2.2

3 weeks ago

What's Changed

New Contributors

Full Changelog: https://github.com/gammazero/nexus/compare/v3.2.1...v3.2.2

v3.0.4

2 years ago
  • Adapt ABORT message to comply with spec
  • Provide ping handler that responds when client blocked
  • Fix session meta procedure to return subscription IDs and not subscriber IDs
  • nexusd can run using only cli flags

v3.0.3

3 years ago

Functional changes:

  • Fix problem with local clients modifying contents of message
  • Do not decode msgpack raw bytes as string #214
  • Router logs MemStats periodically if configured
  • Local (in-process) clients can specify router to client queue size

Examples and Documentation

  • nexus client to demonstrate interoperability with autobahn-python client
  • documentation better describes router and client concurrency

v3.0.1

3 years ago

Functional changes

  • Automatic call cancellation by the router, if call timeout specified in the call options. When timeout specified, router automatically cancels call even if the callee does not support it or is unable to cancel the call.
  • Immediately cancel pending invocations for callee that disconnects
  • Larger default outbound queue size
  • Allow custom connections to be specified in websocket transport
  • Allow client to configure websocket keepalive

Code organization and documentation

  • Refactor role and feature constants to common package
  • Documentation updates

v3.0.0

4 years ago

Create major release 3

  • Correct use of Semantic Import Versioning
  • Removed deprecated APIs

Client API breaking changes:

  • Consolidate client.ConnectNet and client.ConnectNetContext
  • Consolidate client.Call and client.CallProgress
  • Call does not take cancelMode argument. This is set separately for client.
  • Add client.SubscribeChan to receive events on channel instead of handler function.
  • Client's EventHandler and InvocationHandler are passed an Event and Invocation message respectively, instead of the args from those messages.

Transport API breaking changes:

  • Consolidate ConnectWebsocketPeer and ConnectWebsocketPeerContext
  • Consolidate ConnectRawSocketPeer and ConnectRawSocketPeerContext
  • Consolidate ConnectTlsRawSocketPeer and ConnectTlsRawSocketPeerContext
  • Move alternate websocket dialer into WebsocketConfig

Server API breaking changes:

  • Consolidate ConnectRawSocketServer and ConnectTlsRawSocketServer

v2.1.3

4 years ago
  • Return HTTP response on websocket connect error
  • broker and dealer are not exported types
  • Client checks connection before sending message
  • Simplicy synchronization and improve performance in client
  • Fix possible client close hand on network error
  • Fix possible deadlock in kill session meta procedure
  • Fix client crash when rpc interleaved with close
  • Fix improper auth string conversion resulting in serialization error
  • Fix potential deadlock when client killed during register
  • Roles and features moved out of Sessio.Details so locking not required to look them up
  • Peer must have at least one valid role
  • Shorter initial delay until progressive result re-send, with backoff

v2.1.2

4 years ago
  • Fix crash when specifying filter for session meta results (Issue #175)
  • Update dependencies and travis-ci configuration

v2.1.1

5 years ago
  • Discard YIELD if it comes from the wrong session
  • Use context when connecting client to timeout/cancel connection
  • Progressive results use back-pressure to limit influx of results
  • Fix blocking with slow clients
  • Fix error when receiving call for sessionCount/List
  • Use session scoped IDs within the client
  • Allow websocket client to specify proxy URL
  • Crossbar compatibility fixes
  • Broker has replaceable publish filter
  • Fix protocol violation when publish errors occur
  • Always return response to INTERRUPT message
  • Add missing progressive_call_results to caller features
  • Add WebsocketServer.AllowOrigins() to specify allowed origins

v2.1.0

5 years ago
  • Fix pattern-based invocation
  • Subscription meta procedures
  • Websocket server uses websocket ping/pong as keepalive
  • Handle message bursts with timeout instead of immediate drop
  • Progressive call results canceling
  • Session meta kill procedures
  • Messagepack extensions and custom binary encoding for msgpack
  • Fix race when using authorizer to modify session
  • Fix race with testaments

v2.0.4

5 years ago
  • Client fix for request ID generation
  • Option to restrict session details available via session meta API
  • Rename ClientConfig and RouterConfig to Config
  • Eliminate extra goroutine in client
  • Treat scheme http and https as equivalent to ws and wss