buildbuildsuccesssuccess written inwritten ingolanggolang

An NMDC / ADC client protocol library for Golang.

Tags: nmdc


• Connect to NMDC and ADC hubs
• SSL (NMDCS/ADCS) with option to ignore certificate validity
• Autodetect NMDC/ADC protocol by timeout
• Send public and private chat messages, UserCommand support
• Protocol keepalives
• Parse user details (including UserIP2 for NMDC)
• Fast NMDC login via NoHello and QuickList
• Both synchronous (callback) and asynchronous (channel) -based APIs, including example


This package can be installed via go get: go get


2017-11-26 0.16
• Feature: Support connecting to ADC hubs
• BREAKING: Simplify connection API
• Vendor new dependency on (MIT license)
2017-11-14 0.15
• Feature: Fallback reconnection if no data (not even keepalives) are recieved from the hub in 24 hours
• Fix an issue with detecting protocol messages inside multi-line chat messages
• Update examples and the default client version number
2017-02-09 0.14
• Fix an issue with crashing on malformed IP addresses supplied by the hub
2017-02-09 0.13
• Feature: Implement UserIP2 extension, to retrieve IP addresses of other users
• Enhancement: Implement QuickList extension (reduce one network roundtrip during initial connection)
• Enhancement: Implement NoHello extension (faster connection performance)
• Enhancement: Implement ChatOnly extension
• Fix an issue with not notifying client on all MyINFO updates
2017-02-05 0.12
• Fix an issue with mutex deadlock when accessing user information from a callback
• Fix an issue with silent disconnection if a password was required but not present
2016-11-29 0.11
• BREAKING: Remove some exported methods
• BREAKING: Fix an issue with missing sufficient parameters in the synchronous API
• Enhancement: Improve output under godoc
• Fix an issue with special characters appearing in recieved private messages
• Fix an issue with parsing active/passive connection modes
• Fix an issue with errors appearing on stdout
2016-10-08 r10
• Feature: Support $UserCommand
2016-08-27 r9
• Fix an issue with parsing MyINFO strings with zero-length speed descriptions
• Fix an issue with not storing updated profile information
2016-05-10 r8
• Enhancement: Separate ClientTag and ClientVersion in UserInfo structs
2016-05-08 r7
• BREAKING: Remove direct access to HubConnection.Users map
• Feature: Threadsafe user map accessor
• Feature: Option to disable auto-reconnection
• Feature: New Disconnect(), UserCount(), UserExists() functions
• Enhancement: Support $OpList, add IsOperator member to UserInfo structs
• Refactor into multiple files
2016-04-16 r6
• Fix an issue with calling panic() on certain types of abnormal network failure
2016-04-04 r5
• Enhancement: Support protocol keepalives
• Enhancement: Support hub redirects ($ForceMove)
2016-04-03 r4
• Feature: Add synchronous API
• Fix an issue with reading HubConnection's state parameter
• Fix an issue with buffered protocol commands
2016-04-03 r3
• Feature: Add SkipVerifyTLS option
• Fix an issue with calling panic() if connection failed
2016-04-02 r2
• Enhancement: Support NMDC-over-TLS (NMDCS)
• Fix an issue recieving private messages
• Fix an issue with calling panic() if connection failed
• Fix an issue parsing URIs without a specified port
• Move sample content into directory with excluded build
2016-02-12 r1
• Initial public release


For bug reports, feature requests, or if you need any help, please click here to email me.