nsqio/pynsq
The official Python client library for NSQ
#254 - don't violate max-in-flight on new connections (thanks @alpaker)
#244 - tornado 6.x support, co-routine message handlers #247 - switch to GitHub Actions for CI #243 - reduce RDY updates when value hasn't changed (thanks @andyxning) #232 - tornado 5.x support #238 - enable IPV6 support (thanks @andyxning) #230 - fix RDY handling when reducing max_in_flight (thanks @alpaker) #227 - better pydocs for methods
📋 Changes
- #223 - update default TLS version to 1.2 and support overriding via tls_options (thanks @duczen)
- #219 - fix py.test deprecated parameterization
- #217/#218 - python 3 fixes (`mpub`, `AsyncConn`)
- #214 - remove python 2.6 support
- #216 - update PyPI address in docs (thanks @aaronjheng)
- #212 - fix python 3.7 `async` keyword conflict
- #211/#213/#220/#225 - misc test/CI related fixes
- #210 - fix snappy/deflate high CPU load on disconnection (thanks @zexxonn)
- + 3 more
📋 Changes
- #195 - compatibility with tornado 4.5 (thanks @ayamnikov)
- #189/#192 - address Python deprecation warnings (thanks @misja)
- #188 - add ability to specify custom hostname (thanks @andyxning)
- #183 - ensure per-connection RDY counts are updated when connections change (thanks @alpaker)
- #184 - fix zero delay to time_ms in Message.requeue() (thanks @checkraise)
📋 Changes
- #177/#179 - improved RDY handling; don't decrement RDY; prevent edge case max in flight violations (thanks @alpaker)
- #175/#176 - prevent edge case max in flight violation (thanks @alpaker)
- #174 - ensure that writer only publishes to active connections (thanks @panaetov)
📋 Changes
- #167/#168 - make forwards compatible nsqlookupd queries for NSQ v1.0.0-compat
- #169 - send forwards compatible IDENTIFY attributes for NSQ v1.0.0-compat
- #170 - enable TCP_NODELAY on connections
📋 Changes
- #161 - fix Python 3.4 protocol error (thanks @xiaost)
- #160 - fix Python 3 JSON decoding error (thanks @mikolajb)
📋 Changes
- #150 - Python 3 support (thanks @nickstenning et. al)
- #156 - optimize backoff timer (thanks @ploxiln)
- #157 - reuse protocol struct objects (thanks @virtuald)
- #158 - optimistically schedule next ioloop read (thanks @virtuald)
📋 Changes
- #139 - support `DPUB` (thanks @iameugenejo)
- #142 - allow infinite attempts (thanks @iameugenejo)
- #146 - fix regression in max_rdy_count from `nsqd` (thanks @klucar)
- #148/#147 - test fixes (thanks @nickstenning)
📋 Changes
- #129 - fix Snappy `uncompressed` declaration
- #130 - add `SIGINT` handler (thanks @jonmorehouse)
- #117 - add `set_max_in_flight()` to replace broken, deprecated `disabled()`
- #126 - add `msg_timeout` option for `IDENTIFY`
#124 - Tornado 4.x compatibility #123 - fix exception when Reader is stopped before periodic timers start #121 - trigger the correct CLOSE event when socket closes
📋 Changes
- #116 - fix `Message.requeue()` `delay` param
- #103 - support `#ephemeral` topics
- #106/#108/#110/#111/#114 - python 3.0 compatibility
📋 Changes
- #100 - add `Reader.close()`
- #99 - don't redistribute `RDY` when there aren't any connections
- #98 - send `RDY` before `FIN`/`REQ` (for bitly/nsq#404)
- #96 - fix exception when `Writer` has no connection
📋 Changes
- #91 - change order of max attempts check
- #89 - properly handle `requeue(backoff=False)` when in backoff state
- #87 - verify keyword args passed to `Reader`
- #85 - fix `nsqlookupd` addresses specified without scheme
📋 Changes
- #84 - use a named logger
- #83 - add `DEFLATE` support
- #80 - configurable `nsqlookupd` HTTP request timeouts
- #78 - fix potential `Reader` connection index error
- #77 - more flexible `nsqlookupd` configuration
- #76 - fix potential out-of-order backoff/resume
- #72 - `AUTH` support
- #73 - support 64char topic/channel names
📋 Changes
- #68 - fix heartbeat_interval bug
📋 Changes
- #63 - fix connection attributes bug; `heartbeat_interval` as ms
- #65 - fix invalid arguments during read error
- #66/#64 - add integration tests; improve testing matrix
📋 Changes
- #59 - add `nsq_to_nsq` example app (thanks [@ploxiln](https://github.com/ploxiln))
- #58 - add user agent `IDENTIFY` metadata
- #57 - add channel sampling feature negotiation
- #55 - update `Message` docs (thanks [@dsoprea](https://github.com/dsoprea))
- #53 - pep8
- #52 - evented refactoring
- #49 - add output buffering feature negotiation
- #50 - add Snappy compression feature negotiation
- + 1 more
📋 Changes
- #48 - fix writer encoding issues
- #47 - fix writer uncaught exception when no connections to publish to
- #45 - fix writer id property
📋 Changes
- #42 - TLS support
- #39 - distribute requests to lookupd
- #38 - fix edge case where conn would never get RDY; RDY fairness when # conns > max_in_flight
- #36/#37 - refactor internal connection, backoff, and RDY handling
- #29/#34/#35 - refactor public API (drop "tasks"); improve RDY count handling
- #28/#31 - improve backoff handling
