libnmdc/README.md

103 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

2018-12-31 05:41:42 +00:00
# libnmdc
2017-11-26 06:35:13 +00:00
An NMDC / ADC client protocol library for Golang.
2016-04-02 01:28:35 +00:00
2018-12-31 05:41:42 +00:00
Install via go get: `go get code.ivysaur.me/libnmdc`
2016-04-02 01:28:35 +00:00
2018-12-31 05:41:42 +00:00
## Features
2017-11-26 06:35:13 +00:00
- 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
2018-12-31 05:41:42 +00:00
## Changelog
2016-04-02 01:28:35 +00:00
2018-12-31 05:43:28 +00:00
2018-12-31 0.18.0
- BREAKING: Return error from more functions
- Feature: Add new `EVENT` constant to detect connection failures caused by bad password, hub full, etc
- Convert to Go Modules
2018-12-31 05:41:42 +00:00
2018-03-24 0.17.0
2018-03-24 03:51:19 +00:00
- Feature: Re-add sayInfo() function for reannouncing MyINFO changes
2018-12-31 05:41:42 +00:00
2017-11-26 0.16.0
2017-11-26 06:34:35 +00:00
- Feature: Support connecting to ADC hubs
- BREAKING: Simplify connection API
- Vendor new dependency on github.com/cxmcc/tiger (MIT license)
2018-12-31 05:41:42 +00:00
2017-11-14 0.15.0
2017-11-14 05:54:51 +00:00
- 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
2018-12-31 05:41:42 +00:00
2017-02-09 0.14.0
2017-02-11 00:56:08 +00:00
- Fix an issue with crashing on malformed IP addresses supplied by the hub
2018-12-31 05:41:42 +00:00
2017-02-09 0.13.0
2017-02-09 06:31:19 +00:00
- 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
2018-12-31 05:41:42 +00:00
2017-02-05 0.12.0
2017-02-05 09:35:18 +00:00
- 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
2018-12-31 05:41:42 +00:00
2016-11-29 0.11.0
2016-11-29 07:18:17 +00:00
- 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
2018-12-31 05:41:42 +00:00
2016-10-08 0.10.0
2016-10-08 03:32:10 +00:00
- Feature: Support `$UserCommand`
2018-12-31 05:41:42 +00:00
2016-08-27 0.9.0
2016-08-27 05:38:53 +00:00
- Fix an issue with parsing MyINFO strings with zero-length speed descriptions
- Fix an issue with not storing updated profile information
2018-12-31 05:41:42 +00:00
2016-05-10 0.8.0
2016-05-10 07:18:04 +00:00
- Enhancement: Separate `ClientTag` and `ClientVersion` in `UserInfo` structs
2018-12-31 05:41:42 +00:00
2016-05-08 0.7.0
2016-05-08 02:46:41 +00:00
- 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
2018-12-31 05:41:42 +00:00
2016-04-16 0.6.0
2016-04-16 07:12:44 +00:00
- Fix an issue with calling `panic()` on certain types of abnormal network failure
2018-12-31 05:41:42 +00:00
2016-04-04 0.5.0
2016-04-04 07:04:27 +00:00
- Enhancement: Support protocol keepalives
- Enhancement: Support hub redirects (`$ForceMove`)
2018-12-31 05:41:42 +00:00
2016-04-03 0.4.0
2016-04-03 07:23:14 +00:00
- Feature: Add synchronous API
- Fix an issue with reading HubConnection's state parameter
- Fix an issue with buffered protocol commands
2018-12-31 05:41:42 +00:00
2016-04-03 0.3.0
2016-04-03 01:36:41 +00:00
- Feature: Add `SkipVerifyTLS` option
- Fix an issue with calling `panic()` if connection failed
2018-12-31 05:41:42 +00:00
2016-04-02 0.2.0
2016-04-02 01:28:35 +00:00
- 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
2018-12-31 05:41:42 +00:00
2016-02-12 0.1.0
2016-04-02 01:28:35 +00:00
- Initial public release