Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 285 lines (219 sloc) 11.814 kb
acab206 remove 4.x and 3.0.x support; add 3.1.x support
Chuck Remes authored
1 == 0.9.2 / 20111115
2 * Removed all references to the version4 API.
3
4 * Dropped support for 3.0.x and added support for 3.1.x. The 0mq
5 community has pretty much voted to abandon the path taken in 3.0
6 so the 3.1 branch is the API that will be supported.
7
8 * Fixed a bug in Poller#delete where it would erroneously return
9 false even when it successfully deleted a socket. Issue 46.
10
11 * All specs pass for 2.1.x API.
12
13 * 3 specs fail when run with 3.1 API; these are due to bugs in the
14 0mq library and are *not* ffi-rzmq bugs.
a5119ad print warnings when lib loading fails; give extra help for Windows
Chuck Remes authored
15
16 * Rescue LoadErrors when loading libzmq. Print a warning about
17 adding libzmq.dll to the Windows PATH for that platform. Print
18 the search paths where the gem looks for libzmq.
acab206 remove 4.x and 3.0.x support; add 3.1.x support
Chuck Remes authored
19
0c73bca bump version
Chuck Remes authored
20 == 0.9.1 / 20111027
21 * Moved LibC and LibZMQ into the ZMQ module namespace. Necessary to
22 avoid namespace collisions with other libraries that also use
23 the constants LibC and/or LibZMQ.
24
25 * Fixed a bug where file descriptors registered on Poll were never
26 returned as readable or writable.
27
28 * Added Socket#recv_multipart. This returns the message body and
29 return address envelope as separate arrays. Only to be used with
30 XREQ/XREP/DEALER/ROUTER sockets.
31
829408d rework all specs to test new gem API
Chuck Remes authored
32 == 0.9.0 / 20110930
33 * Changed the behavior of every method that used to produce exceptions.
34 The methods now behave more like the C API functions. They return
35 result codes instead of raising exceptions. Further, the "receive"
36 methods on Socket now all take an empty string as a buffer to read
37 the message into.
38 This is a BREAKING CHANGE and is NOT backward compatible with earlier
39 releases. I apologize for the inconvenience, but this API will be
40 much easier to test/spec and maintain. It will also allow for the
41 production of more logical code.
42
3aab034 bump to version 0.9.0
Chuck Remes authored
43 * Major refactoring of Socket internals so that a single gem can
44 support libzmq 2.x, 3.x and 4.x APIs without any user intervention.
45 The correct libzmq version is detected at runtime and used to
46 configure the Ruby classes to conform to the proper API.
47
48 * Added Socket#recvmsgs as a convenience method for receiving a
49 multipart message into an array of Messages.
50
51 * Added support for new 0mq API introduced in the 3.0 branch.
52 API mostly changed for sending and receiving messages with new
53 POSIX-compliant send() and recv() functions. The original
54 functions were renamed sendmsg() and recvmsg().
55 Additionally, most getsockopt() and setsockopt() calls now use
56 an int (4 bytes) instead of a mish-mash of 32-bit and 64-bit
57 values.
58 For a full list of differences, visit the 0mq wiki page at:
59 http://www.zeromq.org/docs:3-0-upgrade
829408d rework all specs to test new gem API
Chuck Remes authored
60
61 * Created a new ext/ directory so that users can copy the libzmq*
62 library files directly into the gem for easier distribution. This
63 path is checked *before* the usual system paths.
64
65 * Rewrote all examples to use the revised API.
3aab034 bump to version 0.9.0
Chuck Remes authored
66
f560095 details for 0.8.2
Chuck Remes authored
67 == 0.8.2 / 20110728
68 * Fixed major bug with Socket#setsockopt when writing 8-byte longs.
69
70 * Clarified a bit of logic for non-blocking sends.
71
72 * Improved readability of exceptions.
73
ee99fa0 bump to 0.8.1; small fix for 32-bit windows under mingw
Chuck Remes authored
74 == 0.8.1 / 20110504
75 * Fixed bug where Socket#setsockopt was using a size from the current
76 runtime to determine how many bytes to use for HWM, et al. This was
77 incorrect. All of those socket options require 8 bytes. Discovered
78 this while getting the code running under mingw on Windows using a
79 32-bit Ruby runtime.
80
8619828 bump to 0.8.0
Chuck Remes authored
81 == 0.8.0 / 20110307
82 * API change!
83 Socket#send_message no longer automatically calls
84 Message#close on behalf of the user. The user is completely
85 responsible for the lifecycle management of all buffers associated
86 with the ZMQ::Message objects.
87 This is a breaking change.
88 If you want the old behavior (auto-close messages on send) then
89 use the new Socket#send_and_close method which does as its name
90 implies.
d3be3e6 merge remote master into local
Chuck Remes authored
91 * Fixed bug with type :size_t on Windows (thank you to arvicco)
8619828 bump to 0.8.0
Chuck Remes authored
92
93 == 0.7.3 / 20110304
94 * Fixed a bug where we had a small memory leak. When closing a socket
95 I forgot to release a small amount of native memory used as a cache
96 for doing #getsockopt calls.
97 * Util.minimum_api? didn't work. Fixed.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
98 * Added ROUTER/DEALER constants to reflect new naming for XREQ/XREP.
99 XREQ and XREP remain aliased for backward compatibility.
8619828 bump to 0.8.0
Chuck Remes authored
100
35182d4 version bump 0.7.2
Chuck Remes authored
101 == 0.7.2 / 20110224
102 * Several minor refactorings to make the code intent clearer and to allow
103 for better testing. In particular, the error condition checking for
104 a non-blocking send/recv is much clearer.
105
c4730f2 Andrew Cholakian Bumped to 0.7.1
andrewvc authored
106 == 0.7.1 / 20110130
107 * Fixed 1.9.1 Binary Encoding bug when UTF8 set as default (Thanks schmurfy)
108 * Improved rubinius compat for specs
109 * Improved spec compatibility on linux
35182d4 version bump 0.7.2
Chuck Remes authored
110
a21b6ec bump version to 0.7.0
Chuck Remes authored
111 == 0.7.0 / 20101222
112 * Improved performance of calls to Socket#getsockopt. There are usually
113 a lot of calls passing RCVMORE, so we now cache those buffers instead
114 of reallocating them every time.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
115
a21b6ec bump version to 0.7.0
Chuck Remes authored
116 * Updated the docs on Poller#poll to warn about a possible busy-loop
117 condition.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
118
a21b6ec bump version to 0.7.0
Chuck Remes authored
119 * Fixed some more specs to conform with the 0mq 2.1 requirement that
120 all sockets must be closed explicitly otherwise the program may
121 hang on exit.
122
123 == 0.6.1 / 20101127
124 * API Change!
125 Moved the #version method from the Util module and made it a class
126 method instead. Invoke as ZMQ::Util.version. Used for conditionally
127 enabling certain features based upon the 0mq version that is loaded.
128
129 * Preliminary support for the Windows platform. Patches supplied
130 by arvicco.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
131
a21b6ec bump version to 0.7.0
Chuck Remes authored
132 * Added support for FD and EVENTS socket options. These were added
133 in 0mq 2.1.0. Patches + specs supplied by andrewvc.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
134
a21b6ec bump version to 0.7.0
Chuck Remes authored
135 * Added support for LINGER, RECONNECT_IVL, BACKLOG and
136 RECOVERY_IVL_MSEC socket options.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
137
a21b6ec bump version to 0.7.0
Chuck Remes authored
138 * Conditionally re-enable the socket finalizer when we are running
139 with 0mq 2.1.0 or later.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
140
a21b6ec bump version to 0.7.0
Chuck Remes authored
141 * Drop support for MRI 1.8.x since the 'ffi' gem has dropped it as a
142 supported Ruby runtime with its 1.0 release. No action is taken to
143 prevent running with MRI 1.8.x but it won't be supported.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
144
a21b6ec bump version to 0.7.0
Chuck Remes authored
145 * Misc. spec fixes. Need more specs!
146
4358e58 bump to 0.6.0
Chuck Remes authored
147 == 0.6.0 / 20100911
148 * API Change! Modified ZMQ::Message by removing automatic memory
149 management. While doing some performance tests I saw that
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
150 defining/undefining the finalizer added 15-30% processing
4358e58 bump to 0.6.0
Chuck Remes authored
151 overhead on the latency test. So, I split this functionality
152 out to a subclass called ZMQ::ManagedMemory. Any existing code
153 that relies on the default Message class to clean up after itself
154 will now have a memory leak. Explicitly call #close on these
155 received messages *unless* they are sent out again. The #send
156 method automatically closes call on your behalf.
157
158 * Rubinius/rbx compatibility! Requires an rbx code pull from git
159 from 20100911 or later to get the necessary code fixes.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
160
4358e58 bump to 0.6.0
Chuck Remes authored
161 * Modify Message to use the @pointer directly rather than indirectly
162 via the @struct object. Provides better compatibility for rbx
163 since rbx does not yet support the FFI pointer protocol for structs
164 like the FFI gem.
165
166 * Modify Message to pass libC's free function for disposing of message
167 data buffers rather than trying to callback into ruby code to
168 do the same thing. External thread callbacks into ruby code will
169 never be supported in rbx; this also improves compatibility and
170 performance with MRI and JRuby. (In particular, MRI enqueues these
171 kinds of callbacks and spawns a *new* thread to execute each one.
172 Avoiding the ruby callback entirely eliminates this extra work
173 for MRI.)
174
175 * Modify FFI wrapper to capture the libC dynamic library to fetch
176 a pointer to the free function.
177
178 * Modify FFI wrapper to remove the FFI::Function callback used
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
179 by Message. It's no longer necessary since we now use free
4358e58 bump to 0.6.0
Chuck Remes authored
180 directly.
181
d832e09 0.5.1 release
Chuck Remes authored
182 == 0.5.1 / 20100830
183 * Works with 0mq 2.0.8 release.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
184
d832e09 0.5.1 release
Chuck Remes authored
185 * Removed the socket finalizer. The current 0mq framework cannot
186 handle the case where zmq_close is called on a socket that was
187 created from another thread. Therefore, the garbage collection
188 thread causes the framework to break. Version 2.1 (or later)
189 should fix this 0mq limitation.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
190
d832e09 0.5.1 release
Chuck Remes authored
191 * Misc fixes. See commits.
192
72b0a41 bump to 0.5.0
Chuck Remes authored
193 == 0.5.0 / 20100606
194 * Updated the bindings to conform to the 0mq 2.0.7 release.
195 Several parts of the API changed.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
196
72b0a41 bump to 0.5.0
Chuck Remes authored
197 * Updated all examples to use the new Context api.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
198
72b0a41 bump to 0.5.0
Chuck Remes authored
199 * Added Socket#getsockopt.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
200
72b0a41 bump to 0.5.0
Chuck Remes authored
201 * Added a Socket#identity and Socket#identity= method pair to
202 allow for easy get/put on socket identities. Useful for async
203 request/reply using XREQ/XREP sockets.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
204
72b0a41 bump to 0.5.0
Chuck Remes authored
205 * Added more specs (slowly but surely).
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
206
72b0a41 bump to 0.5.0
Chuck Remes authored
207 * Support multi-part messages (new as of 2.0.7). I am unsure how
208 to best support multi-part messages so the Message (and related)
209 API may change in the future. Added Socket#more_parts?.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
210
72b0a41 bump to 0.5.0
Chuck Remes authored
211 * Lots of fixes. Many classes use finalizers to deallocate native
212 memory when they go out of scope; be sure to use JRuby 1.5.1 or
213 later to get important finalizer fixes.
214
9a30d52 bump to 0.4.1
Chuck Remes authored
215 == 0.4.1 / 20100511
216 * I was misusing all of the FFI memory allocator classes. I now
217 wrap libc and use malloc/free directly for creating buffers
218 used by libzmq.
219
32708ef bump to version 0.4.0
Chuck Remes authored
220 == 0.4.0 / 20100510
221 * Changed the Socket#recv method signature to take an optional
222 message object as its first argument. This allows the library
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
223 user to allocate and pass in their own message object for the
32708ef bump to version 0.4.0
Chuck Remes authored
224 purposes of zero-copy. Original behavior was for the library to
225 *always* allocate a new message object to receive a message into.
226 Hopefully this is the last change required.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
227
32708ef bump to version 0.4.0
Chuck Remes authored
228 * Modified the Socket constructor to take an optional hash as its
229 final argument. It honors two keys; :receiver_klass and
230 :sender_klass. Passing in a new constant for either (or both) keys
231 will override the class used by Socket for allocating new
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
232 Message objects.
32708ef bump to version 0.4.0
Chuck Remes authored
233
1ebec91 bump to 0.3.1
Chuck Remes authored
234 == 0.3.1 / 20100509
235 * Modified ZMQ::Message so we have both an UnmanagedMessage where
236 memory management is manual via the #close method, and Message where
237 memory management is automated via a finalizer method run during
238 garbage collection.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
239
1ebec91 bump to 0.3.1
Chuck Remes authored
240 * Updated ZMQ::Message docs to make it clearer how to use a subclass
241 and FFI::Struct to lazily access the message buffer. This gets us as
242 close to zero-copy as possible for performance.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
243
1ebec91 bump to 0.3.1
Chuck Remes authored
244 * Fixed a memory leak in Message where the FFI::Struct backing the
245 C struct was not being freed.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
246
1ebec91 bump to 0.3.1
Chuck Remes authored
247 * Tested the FFI code against MRI 1.8.x and 1.9.x. It works!
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
248
1ebec91 bump to 0.3.1
Chuck Remes authored
249 * Patched a potential problem in LibZMQ::MessageDeallocator. It was
250 crashing under MRI because it complained that FFI::Pointer did not
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
251 have a free method. It now checks for :free before calling it.
1ebec91 bump to 0.3.1
Chuck Remes authored
252 Need to investigate this further because it never happened under
253 JRuby.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
254
1ebec91 bump to 0.3.1
Chuck Remes authored
255 * Modified the Socket constructor slightly to allow for using
256 unmanaged or managed messages.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
257
1ebec91 bump to 0.3.1
Chuck Remes authored
258 * Changed the /examples to print a throughput (msgs/s) number upon
259 completion.
260
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
261 == 0.3.0 / 20100507
262 * ZMQ::Socket#send and ZMQ::Socket#recv semantics changed
263 * The official 0mq ruby bindings utilize strings for #send and #recv.
264 However, to do so requires lots of copying to and from buffers which
265 greatly impacts performance. These methods now return a ZMQ::Message
266 object which can be subclassed to do lazy evaluation of the buffer.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
267
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
268 * Added ZMQ::Socket#send_string and ZMQ::Socket#recv_string. They
269 automatically convert the messages to strings just like the official
270 0mq ruby bindings.
271
272 * Fixed bug in ZMQ::Util#error_string
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
273
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
274 * Split the ZMQ::Message class into two classes. The base class called
275 UnmanagedMessage requires manual memory management. The Message
276 class (used by default by Socket) has a finalizer defined to
277 automatically release memory when the message object gets garbage
278 collected.
8e44cee Ben Mabey adds ROUTER/DEALER constants to reflect new naming for XREQ/XREP
bmabey authored
279
280
890dff8 updated docs and bumped version to 0.3.0
Chuck Remes authored
281 == 0.2.0 / 20100505
ae5e456 first commit
Chuck Remes authored
282
283 * 1 major enhancement
284 * Birthday!
Something went wrong with that request. Please try again.