Description

WAMP v2 router library, client library, and a router service, that implements most of the features defined in the WAMP-protocol advanced profile. Project is written in Go and designed for highly concurrent asynchronous I/O. Router provides extended functionality. The router and client interoperate with other WAMP implementations.

Installation Instructions

Nexusd supports next command line arguments:

  • -c path/to/config/file. Path to json configuration file.
  • --realm my.awesome.realm. Realm uri to use for first realm.
  • --ws 0.0.0.0:8080. Websocket address:port to listen on.
  • --tcp 127.0.0.1:8081. TCP address:port to listen on.
  • --unix /tmp/nexus.sock. Unix socket path to listen on.
  • --version. Print current version.
  • --verbose. Enable verbose logging.

Command line options take precedence over specified in config file.

Annotated config file example:

{ "websocket": { "address": ":8080", // Listen address. Can be in form of hostname:port, IP:port, :port (this means to listen on all interfaces) "cert_file": "", // Specify TLS Certificate file and key paths "key_file": "", // to enable secure connections "keep_alive": 30, "enable_compression": false, "allow_origins": ["*"] // For CORS checking }, "rawsocket": { "tcp_address": "", // Listen address. Can be in form of hostname:port, IP:port, :port (this means to listen on all interfaces) "tcp_keepalive_interval": 180, "unix_address": "", // Unix socket path to listen on. It is posible to listen both: tcp and unix socket "max_msg_len": 0, // Maximum message length server can receive. Default = 16M. "cert_file": "", // Specify TLS Certificate file and key paths "key_file": "", // to enable secure connections "out_queue_size": 0 // Limit on number of pending messages to send to each client. 0 - disable queue. }, "log_path": "", // File to write log data to. If not specified, log to stdout. "router": { // Router configuration parameters. "realm_template": null, // if defined, is used by the router to create new realms // when a client requests to join a realm that does not yet exist. // If not defined, then clients must join existing realms. // If defined it must be an object as in realms option below. "realms": [ // Realm configurations array. Router must have at least 1 realm to run { // or you can specify realm template and them realms will be populated on first request "uri": "realm1", "strict_uri": false, // Enforce strict URI format validation. "allow_disclose": true, // Allow publisher and caller identity disclosure when requested. "anonymous_auth": true, // Allow anonymous authentication. "meta_strict": false, // When true, only include standard session details in on_join event "meta_include_session_details": [], // When MetaStrict is true, specifies session details // to include in addition to the standard details "enable_meta_kill": false, // enables the wamp.session.kill* session meta procedures. "enable_meta_modify": false, // enables the wamp.session.modify_details session meta procedures. "event_history": [ // Configurations for event history stores { "topic": "exact.topic.uri", "match": "exact", // Matching policy (exact|prefix|wildcard) "limit": 100 // Number of most recent events to store }, { "topic": "prefix.topic.uri", "match": "prefix", "limit": 500 }, { "topic": "wildcard.topic.uri", "match": "wildcard", "limit": 250 } ] } ], "debug": true, "mem_stats_log_sec": 0 // Interval in seconds for logging memory stats. O to disable. // Logs Alloc, Mallocs, Frees, and NumGC. } }

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download
Fedora 38 aarch64 (10)*, ppc64le (10)*, s390x (13)*, x86_64 (14)* Fedora 38 (18 downloads)
Fedora 39 aarch64 (10)*, ppc64le (10)*, s390x (5)*, x86_64 (5)* Fedora 39 (12 downloads)
Fedora 40 aarch64 (0)*, ppc64le (0)*, s390x (0)*, x86_64 (0)* Fedora 40 (4 downloads)
Fedora rawhide aarch64 (5)*, ppc64le (5)*, s390x (5)*, x86_64 (10)* Fedora rawhide (14 downloads)

* Total number of downloaded packages.