forked from zeromq/czmq
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
411 lines (249 loc) · 12 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
CZMQ version 2.1.0 stable, released on 2014/03/20
=================================================
CZMQ version 2.0.3 stable, released on 2013/11/16
=================================================
Fixed to support ZeroMQ 3.2; was causing a build error due to use of
ZMQ_STREAM in zsockopt.c.
CZMQ version 2.0.2 stable, released on 2013/10/08
=================================================
* Fixed builds on MSVC and FreeBSD.
* Fixed minor build issues in RC2.
CZMQ version 2.0.1 (rc2), released on 2013/09/21
================================================
Updated to support ZeroMQ v4.x. If you are using an older version of CZMQ
it will not build correctly with ZeroMQ v4.x. Sorry about that.
Added support for the new socket options:
* zsocket_set_req_relaxed ()
* zsocket_set_req_correlate ()
* zsocket_set_conflate ()
CZMQ version 2.0.0 (rc1), released on 2013/09/19
================================================
The changes are mainly tools to support encryption via the libzmq CURVE
mechanism, but also some new API constructs to make it simpler to do
common messaging work.
Bug fixes and cleanups of codebase:
* zconfig_load () failed if the ZPL file contained a blank line.
* zconfig_locate () allows and ignores initial '/' on pathname.
* Added zsys_vprintf () to centralize all variable string formatting;
this code was duplicated many times across the project.
* Updated zmsg interface documentation to be more detailed.
* Removed deprecated zstr_sendfm () method.
* Removed deprecated zstr_sendf () method.
* Removed definition of ZMQ_IGNERR and added zloop_set_tolerant ()
to configure a specific poller as error-tolerant.
* Removed deprecated zframe and zmsg zero-copy methods; this API was
too complex and split over several classes, and IMO if we want this
optimization it should be in a new zero-copy class with a clean API.
* Removed deprecated zsocket zero-copy methods, for above reason.
* Removed deprecated zlist_copy method.
* Renamed zframe_print_to_stream to zframe_fprint and kept old name
as deprecated macro.
* Removed (not deprecated) zctx_set_hwm () as its semantics were not
consistent, and confusing to people.
* Removed (not deprecated) zctx_hwm (). We now have separate HWMs for
normal socket SND and RCV, and for inter-thread pipes. There is no
need to provide accessor methods for these.
New API methods to simplify common messaging tasks:
* Added zpoller class to provide new minimalist interface to zmq_poll.
This class makes it very simple to read off a set of sockets, which
is an 80% usecase.
* Added zstr_sendx () to send multiple strings in one call. Inspired
by PyZMQ's multipart send method.
* Added zstr_recvx () to receive multiple strings in one call. We do
a lot of multipart string reads; this makes it simpler for simple
cases.
* Added zclock_timestr () to provide date/time as printable string.
* Added zmsg_append () that nullifies caller's frame reference; this
is more consistent with the API style than zmsg_add (), which is
deprecated.
New classes used for security infrastructure:
* Added zchunk class (from FileMQ), for managing memory blocks.
This is a simpler model than zframes, which are optimized for
message data.
* Added zhash_comment () to add comments to a serialized zhash file.
* Added zhash_refresh () to reload a backing file if modified on disk.
* Added zconfig_comment () to add comments to saved config file, and
added code to save such comments from file when loading it.
* Moved zfile (char *filename) methods to zsys, to make place for
a new zfile class based on the CLASS object model. The old methods
are still provided but are deprecated.
* Added zfile class (from FileMQ), for managing files. This provides
a rich file class with metadata and operations. This is a component
for directory management (zdir).
* Added zdir class (from FileMQ), for managing directories. This lets
us work with filesystem directories. I wanted this to be able to
load certificates for security authentication.
* The zdir and zfile classes are slightly stripped down from their
FileMQ originals; no symbolic links, no directory difference tools.
* Unfortunately to keep the old zfile_size and zfile_time methods, I
had to use zfile_cursize and zfile_modified in the new class. This
is a little clumsy.
* Added zsys_file_modified () to return timestamp for a filename.
* Added zcert class to work with Curve certificates. A certificate is
a public + secret key pair, plus metadata like name, email, etc. and
is saved as two files, a public text file and a secret text file.
Certificates are stored in ZPL (ZMQ RFC 4) configuration file format.
* Added zauth class to automate ZAP authenticators. This class does a
simple plug and play authentication of clients against certificates
stored in the $HOME/.curve directory. This can be extended over time
with other designs.
* Added zcertstore class to work with Curve certificate stores. This is
a directory or in-memory store holding a set of certificates.
* Extended zsockopt generation to allow use of binary keys in CURVE
key options (e.g. zsocket_set_curve_secretkey_bin ()).
* Added addons/makecert.c tool to generate CURVE certificates.
* Added examples/security directory with several examples.
For full details, see git log.
CZMQ version 1.4.1 (stable), released on 2013/05/01
===================================================
Changes
-------
* Fixed assertion in zbeacon on sendto error.
* Fixed packaging of platform scripts in /builds.
* See git log for rest.
CZMQ version 1.4.0 (stable), released on 2013/04/30
===================================================
Changes
-------
* Added zbeacon class.
* See git log for rest.
CZMQ version 1.3.2 (stable), released on 2012/12/22
===================================================
Changes
-------
* See git log.
CZMQ version 1.3.1 (stable), released on 2012/10/27
===================================================
Changes
-------
* See git log.
CZMQ version 1.3.0 (rc), not released
=====================================
CZMQ version 1.2.0 (stable), released on 2012/08/06
===================================================
Changes
-------
* zsockopt_ functions renamed to zsocket_, for clarity. Old names are
still provided for compatibility.
* SUB sockets are no longer subscribed to everything.
* Fixed issue CZMQ-7, wrong name used for CZMQ man page.
* Changed zsocket_connect() to return 0 or -1, since zmq_connect() now
checks endpoints properly (issue LIBZMQ-207).
* All classes handle memory exhaustion correctly by returning an error
instead of asserting.
* zsocket_identity implemented correctly.
* Added zctx_underlying() to provide access to low-level 0MQ context
object, to allow manipulation for extreme cases and tests.
* For the rest, check the git history :-)
CZMQ version 1.1.0 (stable), released on 2011/08/30
===================================================
Changes
-------
* Fixed issue CZMQ-2. (https://zeromq.jira.com/browse/CZMQ-2)
* Removed unused ctx argument from zthread_new() call.
* zloop works with zmq_pollitem_t * instead of void * sockets; allows
use of native FDs in reactor as well as 0MQ sockets.
* zloop_reader renamed to zloop_poller.
* zloop_cancel renamed to zloop_poller_end, and API changed to work with
zmq_pollitem_t * instead of a single 0MQ socket void *.
* Added zloop_timer_end, taking same argument as for zloop_timer.
* zloop_poller_end cancels ALL handlers for the socket or FD.
* Added zmsg_content_size method to report full content size of message.
* zmsg_save returns 0/-1 depending on success/failure (previously returned
void).
* zmsg_dump limited to first 10 frames, to allow mix of large and small
messages in applications.
* zframe_print truncates output at 70 chars to prevent over-long output.
* Added ability for zsocket_bind to bind to ephemeral port in range 0xc000
to 0xffff.
* zmq_bind always returns port number bound to, if successful.
* Added zfile class with minimal helper functions.
* Added zfile_size method to return file size, as ssize_t.
* Added socket multipart flush to zctx_destroy to work around libzmq issue
134, which asserts if a fair-queuing socket still has input at close.
* Added zframe_eq method to compare two frames' size and content.
* Changed zmsg_load to append to an optional existing message.
* Fixed zloop to allow timers to be added after reactor was started.
Without this fix, the reactor would spin at max speed instead of
properly calculating the timer. (Luc Heinrich)
* Modified zmsg_pushstr and zmsg_addstr to accept variable argument list
and do vsnprintf formatting of provided string.
* Added zhash_rename function to allow soft renaming of item keys.
* Added tblsize and tbllast macros, so very useful when you need them.
* Added zmsg_encode and zmsg_decode functions to serialize messages to
and from a byte buffer.
* Added zframe_recv_nowait method to read frame without blocking.
CZMQ version 1.0.0 (stable), released on 2011/04/26
===================================================
Changes
-------
* At build time, reports error if libzmq version isn't at least 2.1.
* Renamed project to CZMQ for coherence with other language bindings.
libzapi version 1.3.2 (beta), released on 2011/04/15
====================================================
Changes
-------
* Added zsocket_type_str method to return printable socket type.
* Added zloop_set_verbose method to enable/disable reactor activity.
* Fixed zloop to call right handlers even if handlers register/cancel
other handlers.
* Fixed zloop to not call handlers when interrupted.
* Added zsocket_set_hwm method to emulate 2.x option (sets both send
and recv high-water marks).
* Several parts of the 3.0 porting didn't work properly - fixed.
* Added macro set to aid portability from 2.1 to 3.0: ZMQ_POLL_MSEC,
ZMQ_DONTWAIT, zmq_sendmsg, zmq_recvmsg.
libzapi version 1.3.1 (beta), released on 2011/04/09
====================================================
Changes
-------
* Added compatibility for new libzmq/3.0 API.
libzapi version 1.3.0 (beta), released on 2011/04/08
====================================================
Changes
-------
* Ported to win32, all selftests pass successfully.
* New zsockopt class provides API to set/get socket options.
* New zsocket class provides API to connect and bind sockets using
printf semantics to format endpoints.
* Threading API now supports detached and attached threads via zthread
class, and zthread_new and zthread_fork methods.
* Pipes to attached threads have HWM of 1 (each side) to block runaway
writers.
* In zframe class, added print, reset, strdup, streq, strhex, dup methods.
* In zmsg class, added last, wrap, unwrap, popstr, pushstr, addstr, dup
methods.
* In zclock class, added log method.
* In zstr class, added sendm and recv_nowait methods.
* Added Valgrind suppression file for libzmq.
Bug Fixes
---------
* Fixed error in thread pipe handling which sometimes provoked libzmq
assertion failure at shutdown.
libzapi version 1.2.1 (beta), released on 2011/04/01
====================================================
Changes
-------
* Rewrote zctx class, which was wrongly working with sockets in two
threads. Much simpler, and properly stable now.
* Project renamed to 'libzapi' for consistency with 'libzmq'.
* Expanded main documentation page significantly.
zapi version 1.2.0 (beta), released on 2011/03/24
=================================================
Changes
-------
* Added zclock class for portable millisecond timers and delays.
* Expanded documentation significantly.
zapi version 1.1.0 (beta), released on 2011/03/23
=================================================
Changes
-------
* Added zctx_thread_new method to create child threads with a PAIR pipe
to talk to them.
* Made zapi threadsafe, specifically multiple threads can share the same
context and thus talk to each other.
zapi version 1.0.0 (beta), released on 2011/03/22
=================================================
Changes
-------
* Initial version of library finished, tested, documented, and packaged.