1 | # Change log for amqplib
|
2 |
|
3 | ## Changes in v0.10.4
|
4 |
|
5 | - Improve stream example as per https://github.com/amqp-node/amqplib/issues/722
|
6 | - Added support for RabbitMQ's connection update-secret operation. See https://github.com/amqp-node/amqplib/issues/755
|
7 |
|
8 | ## Changes in v0.10.3
|
9 |
|
10 | git log v0.10.2..v0.10.3
|
11 |
|
12 | - Use @acuminous/bitsyntax fork. See https://github.com/amqp-node/amqplib/issues/453
|
13 |
|
14 | ## Changes in v0.10.2
|
15 |
|
16 | git log v0.10.1..v0.10.2
|
17 |
|
18 | - Use Buffer.allocUnsafe when sending messages to improve performance ([PR
|
19 | 695](https://github.com/amqp-node/amqplib/pull/695), thank you
|
20 | @chkimes and @Uzlopak)
|
21 |
|
22 | ## Changes in v0.10.1
|
23 |
|
24 | git log v0.10.0..v0.10.1
|
25 |
|
26 | * Allow servername to be specified via socket options as discussed in
|
27 | [issue 697](https://github.com/squaremo/amqp.node/issues/697)
|
28 |
|
29 | ## Changes in v0.10.0
|
30 |
|
31 | git log v0.9.1..v0.10.0
|
32 |
|
33 | * Use Native promises ([PR
|
34 | 689](https://github.com/amqp-node/amqplib/pull/689), thank you
|
35 | @mohd-akram and @kibertoad)
|
36 |
|
37 | ## Changes in v0.9.1
|
38 |
|
39 | git log v0.9.0..v0.9.1
|
40 |
|
41 | * Assorted readme changes
|
42 | * Use Array.prototype.push.apply instead of concat in Mux ([PR
|
43 | 658](https://github.com/squaremo/amqp.node/pull/658), thank you
|
44 | @Uzlopak and @kibertoad)
|
45 | * Use Map instead of Object for BaseChannel.consumers ([PR
|
46 | 660](https://github.com/squaremo/amqp.node/pull/660), thank you
|
47 | @Uzlopak)
|
48 | * Delete consumer callback after cancellation to free memory ([PR
|
49 | 659](https://github.com/squaremo/amqp.node/pull/659), thank you
|
50 | @Uzlopak and @kibertoad)
|
51 |
|
52 |
|
53 | ## Changes in v0.9.0
|
54 |
|
55 | git log v0.8.0..v0.9.0
|
56 |
|
57 | * Update mocha and replace the deprecated istanbul with nyc ([PR
|
58 | 681](https://github.com/squaremo/amqp.node/pull/681)
|
59 | * Update url-parse ([PR
|
60 | 675](https://github.com/squaremo/amqp.node/pull/675), thank you
|
61 | @suhail-n and @kibertoad)
|
62 | * fix: done called twice on invalid options ([PR
|
63 | 667](https://github.com/squaremo/amqp.node/pull/667), thank you
|
64 | @luddd3 and @kibertoad)
|
65 | * Close connection to server on connect errors ([PR
|
66 | 647](https://github.com/squaremo/amqp.node/pull/647), thank you
|
67 | @luddd3 and @kibertoad)
|
68 | * Modernise channel_model.js ([PR
|
69 | 635](https://github.com/squaremo/amqp.node/pull/635), thank you
|
70 | @kibertoad and @jimmywarting)
|
71 | * Bring package-lock.json up to date ([PR
|
72 | 653](https://github.com/squaremo/amqp.node/pull/653)
|
73 | * Update url-parse ([PR
|
74 | 652](https://github.com/squaremo/amqp.node/pull/652), thank you
|
75 | @giorgioatanasov and @buffolander)
|
76 | * Modernise channel_model.js ([PR
|
77 | 651](https://github.com/squaremo/amqp.node/pull/651), thank you
|
78 | for the review @kibertoad)
|
79 | * Modernise bitset.js ([PR
|
80 | 634](https://github.com/squaremo/amqp.node/pull/634), thank you
|
81 | @kibertoad and @jimmywarting)
|
82 | * :warning: Drop CI for node versions below 10 ([PR
|
83 | 631](https://github.com/squaremo/amqp.node/pull/631), thank you
|
84 | for the review @kibertoad)
|
85 | * Replace safe-buffer dependency with native buffers ([PR
|
86 | 628](https://github.com/squaremo/amqp.node/pull/628), thank you
|
87 | @kibertoad and @jimmywarting)
|
88 |
|
89 | ## Changes in v0.8.0
|
90 |
|
91 | git log v0.7.1..v0.8.0
|
92 |
|
93 | * :warning: Support for NodeJS prior to v10 is dropped :warning: ([PR
|
94 | 615](https://github.com/squaremo/amqp.node/pull/615), thank you
|
95 | @xamgore and everyone who helped there)
|
96 | * Use hostname as TLS servername, to help with using servers behind
|
97 | load balancers ([PR
|
98 | 567](https://github.com/squaremo/amqp.node/pull/567), thanks to
|
99 | @carlhoerberg and commenters)
|
100 |
|
101 | ## Changes in v0.7.1
|
102 |
|
103 | git log v0.7.0..v0.7.1
|
104 |
|
105 | * Update url-parse (and others) ([PR
|
106 | 607](https://github.com/squaremo/amqp.node/pull/545), thanks
|
107 | @ThomasGawlitza)
|
108 |
|
109 | ## Changes in v0.7.0
|
110 |
|
111 | git log v0.6.0..v0.7.0
|
112 |
|
113 | * Extend support to Node.js v15
|
114 | * Fix use of stream.write in tests
|
115 |
|
116 | ## Changes in v0.6.0
|
117 |
|
118 | git log v0.5.6..v0.6.0
|
119 |
|
120 | * Extend support to Node.js v14
|
121 |
|
122 | ## Changes in v0.5.6
|
123 |
|
124 | git log v0.5.5..v0.5.6
|
125 |
|
126 | * Increase size of encoding space for message headers, to fit e.g.,
|
127 | JWT ([PR 545](https://github.com/squaremo/amqp.node/pull/545));
|
128 | thanks @twatson83
|
129 | * Switch to a non-deprecated UUID module ([PR
|
130 | 528](https://github.com/squaremo/amqp.node/pull/528)); thanks to
|
131 | @StrayBird-ATSH
|
132 | * Fix a bug in multiplexing that caused an assertion to fail ([PR
|
133 | 503](https://github.com/squaremo/amqp.node/pull/503)); thanks
|
134 | @johanneswuerbach
|
135 |
|
136 | ## Changes in v0.5.5
|
137 |
|
138 | git log v0.5.3..v0.5.5
|
139 |
|
140 | **NB** this includes a minor but possibly breaking change: after [PR
|
141 | 498](https://github.com/squaremo/amqp.node/pull/498), all confirmation
|
142 | promises still unresolved will be rejected when their associated
|
143 | channel is closed.
|
144 |
|
145 | * Generate defs in `npm prepare` rather than `npm prepublish` so that
|
146 | e.g., amqplib can be installed via git ([part of PR
|
147 | 498](https://github.com/squaremo/amqp.node/pull/498))
|
148 | * Reject all pending confirmations when the channel is closed ([PR
|
149 | 498](https://github.com/squaremo/amqp.node/pull/498)); thanks
|
150 | @johanneswuerbach
|
151 | * Update supported NodeJS versions in package.json ([PR
|
152 | 525](https://github.com/squaremo/amqp.node/pull/525)); thanks
|
153 | @tingwai
|
154 |
|
155 | ## (Deprecated v0.5.4)
|
156 |
|
157 | This release was mistakenly published without the generated file
|
158 | `./defs.js`. It has been deprecated in favour of v0.5.5.
|
159 |
|
160 | ## Changes in v0.5.3
|
161 |
|
162 | git log v0.5.2..v0.5.3
|
163 |
|
164 | * Bump bitsyntax to remove some `Buffer` misuse deprecation notices
|
165 | ([PR 480])(https://github.com/squaremo/amqp.node/pull/480)
|
166 | * Test on node 11.1
|
167 | ([PR 473])(https://github.com/squaremo/amqp.node/pull/464); thanks
|
168 | @kibertoad
|
169 | * Updated various dependencies
|
170 | * Support queue mode during assertQueue
|
171 | ([PR 464])(https://github.com/squaremo/amqp.node/pull/464); thanks
|
172 | @JoeTheFkingFrypan
|
173 | * Expose serverProperties in the connection object
|
174 | ([PR 452])(https://github.com/squaremo/amqp.node/pull/452); thanks
|
175 | @jfromaniello
|
176 | * Test on Node 10
|
177 | ([PR 454])(https://github.com/squaremo/amqp.node/pull/454); thanks
|
178 | @kibertoad
|
179 | * Support amqplain credentials
|
180 | ([PR 451])(https://github.com/squaremo/amqp.node/pull/451); thanks
|
181 | @jfromaniello
|
182 | * Decorate channel errors with methodId and classId
|
183 | ([PR 447])(https://github.com/squaremo/amqp.node/pull/447); thanks
|
184 | @MitMaro
|
185 | * Resolve issues caused by Node 10 `readable` changes
|
186 | ([PR 442])(https://github.com/squaremo/amqp.node/pull/442)
|
187 | * Bump uglify to 2.6.x and node to 9.1 due to nodejs/node#16781.
|
188 | ([PR 439])(https://github.com/squaremo/amqp.node/pull/439)
|
189 | * Updated README with more modern Buffer syntax
|
190 | ([PR 438](https://github.com/squaremo/amqp.node/pull/438); thanks
|
191 | @ravshansbox
|
192 | * Support overflow option to assert queue
|
193 | ([PR 436])(https://github.com/squaremo/amqp.node/pull/436); thanks
|
194 | to @honestserpent
|
195 | * Replace instances of keyword `await`
|
196 | ([PR 396])(https://github.com/squaremo/amqp.node/pull/396),
|
197 | as discussed in
|
198 | [issue 235](https://github.com/squaremo/amqp.node/issues/235)
|
199 | * Use 3rd party url for better decoding of username/password
|
200 | ([PR 395])(https://github.com/squaremo/amqp.node/pull/395),
|
201 | as discussed in
|
202 | [issue 385](https://github.com/squaremo/amqp.node/issues/385))
|
203 |
|
204 | ## Changes in v0.5.2
|
205 |
|
206 | git log v0.5.1..v0.5.2
|
207 |
|
208 | * Increase encoding buffer to accommodate large header values
|
209 | ([PR 367](https://github.com/squaremo/amqp.node/pull/367))
|
210 | * Bring code up to date with new Buffer interface
|
211 | ([PR 350](https://github.com/squaremo/amqp.node/pull/350))
|
212 | * Fix dangling connection problem
|
213 | ([PR 340](https://github.com/squaremo/amqp.node/pull/340))
|
214 | * Clear up URL credentials parsing
|
215 | ([PR 330](https://github.com/squaremo/amqp.node/pull/330))
|
216 | * Allow connection params to be suppied in object
|
217 | ([PR 304](https://github.com/squaremo/amqp.node/pull/304))
|
218 | * Support explicit numeric types in field tables (e.g., headers)
|
219 | ([PR 389](https://github.com/squaremo/amqp.node/pull/389), from a
|
220 | suggestion in
|
221 | [issue 358](https://github.com/squaremo/amqp.node/issues/358))
|
222 |
|
223 | Thank you to all contributors, of PRs, issues and comments.
|
224 |
|
225 | ## Changes in v0.5.1
|
226 |
|
227 | git log v0.5.0..v0.5.1
|
228 |
|
229 | * Fix mistake in closeBecause
|
230 | ([PR 298](https://github.com/squaremo/amqp.node/pull/298); thanks
|
231 | to @lholznagel and others who reported the issue, and to @nfantone
|
232 | for the rapid fix)
|
233 |
|
234 | ## Changes in v0.5.0
|
235 |
|
236 | git log v0.4.2..v0.5.0
|
237 |
|
238 | * Port to use bluebird rather than when.js
|
239 | ([PR 295](https://github.com/squaremo/amqp.node/pull/295); thanks
|
240 | to @nfantone, and special mention to @myndzi for #158)
|
241 | * Fixed a problem with using `channel.get` in the callback model
|
242 | ([PR 283](https://github.com/squaremo/amqp.node/pull/283); good
|
243 | catch, @shanksauce)
|
244 | * Added an example that uses generators (thanks @rudijs)
|
245 | * Fixed a link in the comments relating to heartbeats (thanks
|
246 | @tapickell)
|
247 |
|
248 | ## Changes in v0.4.2
|
249 |
|
250 | git log v0.4.1..v0.4.2
|
251 |
|
252 | * Better documentation and examples
|
253 | * Replace uses of ES6 keyword 'await'
|
254 |
|
255 | ## Changes in v0.4.1
|
256 |
|
257 | git log v0.4.0..v0.4.1
|
258 |
|
259 | * Tested in Node.JS 0.8 through 4.2 and 5.5
|
260 | * Emit an error with the 'close' event if server-initiated
|
261 |
|
262 | ## Changes in v0.4.0
|
263 |
|
264 | git log v0.3.2..v0.4.0
|
265 |
|
266 | * Tested on Node.JS 0.8 through 4.0 (and intervening io.js releases)
|
267 | * Change meaning of 'b' fields in tables to match RabbitMQ (and AMQP
|
268 | specification)
|
269 | * Can now pass an object in place of connection URL
|
270 | ([PR 159](https://github.com/squaremo/amqp.node/pull/159); thanks
|
271 | to @ben-page)
|
272 | * Operator-initiated connection close no longer results in 'error'
|
273 | event
|
274 | ([issue 110](https://github.com/squaremo/amqp.node/issues/110))
|
275 | * Channel and Connection errors have now a `.code` field with the
|
276 | AMQP reply-code, which may help distinguish error cases
|
277 | ([PR 150](https://github.com/squaremo/amqp.node/pull/150); thanks
|
278 | to @hippich)
|
279 | * Connection.close will resolve to an error if the connection is
|
280 | already closed
|
281 | ([issue 181](https://github.com/squaremo/amqp.node/issues/181))
|
282 | * Connection establishment will resolve with an error if the
|
283 | TCP-level connection or the handshake times out
|
284 | ([PR 169](https://github.com/squaremo/amqp.node/pull/169); thanks
|
285 | to @zweifisch and @RoCat, who both submitted fixes)
|
286 | * Add the `maxPriority` option as an alias for the `'x-max-priority'`
|
287 | queue argument
|
288 | ([PR 180](https://github.com/squaremo/amqp.node/pull/180); thanks
|
289 | to @ebardes)
|
290 |
|
291 | ## Changes in v0.3.2 (since v0.3.1)
|
292 |
|
293 | git log v0.3.1..v0.3.2
|
294 |
|
295 | * Make the engine specification more flexible to admit io.js releases
|
296 |
|
297 | ## Changes in v0.3.1 (since v0.3.0)
|
298 |
|
299 | git log v0.3.0..v0.3.1
|
300 |
|
301 | ### Fixes
|
302 |
|
303 | * Fail in the right way when a channel cannot be allocated [issue
|
304 | 129](https://github.com/squaremo/amqp.node/issues/129)
|
305 | * Make `waitForConfirms` work properly in callback API [PR
|
306 | 116](https://github.com/squaremo/amqp.node/pull/116)
|
307 |
|
308 | ### Enhancements
|
309 |
|
310 | * Two new options while connecting:
|
311 | [timeout](https://github.com/squaremo/amqp.node/pull/118) and [keep
|
312 | alive](https://github.com/squaremo/amqp.node/pull/125) (thanks to
|
313 | @rexxars and @jcrugzz respectively)
|
314 |
|
315 | ## Changes in v0.3.0 (since v0.2.1)
|
316 |
|
317 | git log v0.2.1..v0.3.0
|
318 |
|
319 | ### Enhancements
|
320 |
|
321 | * Allow additional client properties to be set for a connection
|
322 | [Issue 98](https://github.com/squaremo/amqp.node/issues/98) and
|
323 | [PR 80](https://github.com/squaremo/amqp.node/pull/80)
|
324 | * New method in channel API to wait for all unconfirmed messages
|
325 | [Issue 89](https://github.com/squaremo/amqp.node/issues/89)
|
326 | * Now supports RabbitMQ's `EXTERNAL` authentication plugin
|
327 | [Issue 105](https://github.com/squaremo/amqp.node/issues/105)
|
328 |
|
329 | ## Changes in v0.2.1 (since v0.2.0)
|
330 |
|
331 | ### Fixes
|
332 |
|
333 | * Do tuning negotation properly [PR
|
334 | 84](https://github.com/squaremo/amqp.node/pull/84)
|
335 |
|
336 | ## Changes in v0.2.0 (since v0.1.3)
|
337 |
|
338 | git log v0.1.3..v0.2.0
|
339 |
|
340 | ### Fixes
|
341 |
|
342 | * Correctly deal with missing fields (issue 48)
|
343 |
|
344 | ### Enhancements
|
345 |
|
346 | * Added a callback-oriented API, parallel to the existing,
|
347 | promise-oriented API.
|
348 | * The response to assertExchange now contains the exchange name,
|
349 | analagous to assertQueue (issue 49)
|
350 | * The channel method `prefetch` now has a global flag, to be
|
351 | [compatible with newer RabbitMQ][rabbitmq-prefetch-global].
|
352 |
|
353 | ## Changes in v0.1.3 (since v0.1.2)
|
354 |
|
355 | git log v0.1.2..v0.1.3
|
356 |
|
357 | ### Enhancements
|
358 |
|
359 | * Add support in the API for using Basic.Reject rather than
|
360 | Basic.Nack, the latter of which is a RabbitMQ extension and not in
|
361 | older versions of RabbitMQ.
|
362 |
|
363 | ## Changes in v0.1.2 (since v0.1.1)
|
364 |
|
365 | git log v0.1.1..v0.1.2
|
366 |
|
367 | ### Fixes
|
368 |
|
369 | * Restore support for publishing zero-length messages
|
370 |
|
371 | ### Enhancements
|
372 |
|
373 | * Recognise [authentication failures][rabbitmq-auth-failure]
|
374 | * An option to set TCP_NODELAY on connection sockets
|
375 |
|
376 | ## Changes in v0.1.1 (since v0.1.0)
|
377 |
|
378 | git log v0.1.0..v0.1.1
|
379 |
|
380 | ### Fixes
|
381 |
|
382 | * Safer frame construction, no longer relies on allocating a large,
|
383 | fixed-size buffer and hoping it's big enough
|
384 | * The ports of RabbitMQ tutorials now avoid a race between publishing
|
385 | and closing the connection
|
386 |
|
387 | ### Enhancements
|
388 |
|
389 | * Support for RabbitMQ's consumer priority extension
|
390 | * Support for RabbitMQ's connnection.blocked extension
|
391 | * Better write speed from batching frames for small messages
|
392 | * Other minor efficiency gains in method encoding and decoding
|
393 | * Channel and connection state errors (e.g., trying to write when
|
394 | closed) include a stack trace from when they moved to that state
|
395 | * The `arguments` table, passed as an option to some methods, can
|
396 | include fields in its prototype chain
|
397 | * Provide the more accurately named `persistent` as a near equivalent
|
398 | of `deliveryMode`
|
399 |
|
400 | ## Changes in v0.1.0 (since v0.0.2)
|
401 |
|
402 | git log v0.0.2..v0.1.0
|
403 |
|
404 | ### Breaking changes
|
405 |
|
406 | * Consumer callbacks are invoked with `null` if the consumer is
|
407 | cancelled (see
|
408 | [RabbitMQ's consumer cancel notification][rabbitmq-consumer-cancel])
|
409 | * In confirm channels, instead of `#publish` and `#sendToQueue`
|
410 | returning promises, they return a boolean as for normal channels,
|
411 | and take a Node.JS-style `function (err, ok)` callback for the
|
412 | server ack or nack
|
413 |
|
414 | ### Fixes
|
415 |
|
416 | * Overlapping channel and connection close frames are dealt with
|
417 | gracefully
|
418 | * Exceptions thrown in consumer callbacks are raised as `'error'`
|
419 | events
|
420 | * Zero-size messages are handled
|
421 | * Avoid monkey-patching `Buffer`, and eschew
|
422 | `require('util')._extend`
|
423 |
|
424 | ### Enhancements
|
425 |
|
426 | * Channels now behave like `Writable` streams with regard to `#publish`
|
427 | and `#sendToQueue`, returning a boolean from those methods and
|
428 | emitting `'drain'`
|
429 | * Connections now multiplex frames from channels fairly
|
430 | * Low-level channel machinery is now fully callback-based
|
431 |
|
432 |
|
433 | [rabbitmq-consumer-cancel]: http://www.rabbitmq.com/consumer-cancel.html
|
434 | [rabbitmq-auth-failure]: http://www.rabbitmq.com/auth-notification.html
|
435 | [rabbitmq-prefetch-global]: http://www.rabbitmq.com/consumer-prefetch.html
|