UNPKG

14.7 kBMarkdownView Raw
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
141498](https://github.com/squaremo/amqp.node/pull/498), all confirmation
142promises still unresolved will be rejected when their associated
143channel 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
157This 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
223Thank 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