forked from Cylix/cpp_redis
-
Notifications
You must be signed in to change notification settings - Fork 205
Expand file tree
/
Copy pathmd_CHANGELOG.html
More file actions
364 lines (362 loc) · 16.2 KB
/
md_CHANGELOG.html
File metadata and controls
364 lines (362 loc) · 16.2 KB
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta m_name="generator" content="Doxygen 1.8.14"/>
<meta m_name="viewport" content="width=device-width, initial-scale=1"/>
<title>My Project: Changelog</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">My Project
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
m_name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Changelog </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/4.3.1">v4.3.1</a></h2>
<h3>Tag</h3>
<p><code>4.3.1</code>. </p><h3>Date</h3>
<p>January 31st, 2018 </p><h3>Changes</h3>
<ul>
<li>Fix compilation issues on some platforms</li>
<li>Fix CMake configuration issues</li>
<li>Compile with position independent code</li>
<li>Fix issue when reconnecting if the internal buffer was not cleared. Now fully clear all input/output buffers</li>
<li>Fix set_nb_workers behavior</li>
<li>Bump tacopie: compilation fix, position independent code, set_nb_workers fix <h3>Additions</h3>
</li>
</ul>
<p>None </p><h3>Removals</h3>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/4.3.0">v4.3.0</a></h2>
<h3>Tag</h3>
<p><code>4.3.0</code>. </p><h3>Date</h3>
<p>November 13th, 2017 </p><h3>Changes</h3>
<ul>
<li>tacopie: fork support: allow set_default_io_service to take nullptr. In order to safely fork, call set_default_io_service(nullptr) to make sure the io_service destructor is called and all underlying threads joined.</li>
<li>tacopie: fix: timeout for connection not working due to invalid param to select, now working</li>
<li>tacopie: improvement: make sure socket is in blocking mode before connection (#32) as it differs from one OS to another</li>
<li>tacopie: improvement: check for non-blocking connect errors with getsockopt to avoid connect reporting a successful connection followed by a call to disconnection handler (now connect report a failed <h3>Additions</h3>
</li>
</ul>
<ul>
<li>tacopie: ipv6 support (connect, bind and accept operations, on tcp_server and tcp_client) <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h3><a href="https://github.com/Cylix/cpp_redis/releases/tag/4.2.0">v4.2.0</a></h3>
<h3>Tag</h3>
<p><code>4.2.0</code>. </p><h3>Date</h3>
<p>November 2nd, 2017 </p><h3>Changes</h3>
<ul>
<li>CMake fix: Remove explicit STATIC in add_library call so dynamic libraries can be built and improve consistency</li>
<li>Tacopie bump to 3.1.0 (refer to tacopie changelog for updates) <h3>Additions</h3>
</li>
</ul>
<ul>
<li>Visual Studio C++ solution <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/4.1.0">v4.1.0</a></h2>
<h3>Tag</h3>
<p><code>4.1.0</code>. </p><h3>Date</h3>
<p>September 26th, 2017 </p><h3>Changes</h3>
<ul>
<li>Fix some compilation issues on windows (on both cpp_redis and tacopie sides)</li>
<li>scan command improvement with additional overloads <h3>Additions</h3>
</li>
</ul>
<ul>
<li>sort command</li>
<li>hscan command</li>
<li>sscan command</li>
<li>zscan command</li>
<li>zinterstore command</li>
<li>zunionstore command</li>
<li>zrangebyscore command</li>
<li>zrevrangebyscore command</li>
<li>zrangebylex command</li>
<li>zrevrangebylex command</li>
<li>georadius command</li>
<li>georadiusbymember command</li>
<li>bitfield command <h3>Removals</h3>
</li>
</ul>
<ul>
<li>Private, Protected and Static functions from doxygen documentation</li>
</ul>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/4.0.0">v4.0.0</a></h2>
<h3>Tag</h3>
<p><code>4.0.0</code>. </p><h3>Date</h3>
<p>September 20th, 2017 </p><h3>Changes</h3>
<ul>
<li>ZADD score param changed from map to multimap to allow multiple elements with same score</li>
<li>connection_callback (replacement of disconnection_callback). Called for any steps of connection process (attempt, success, failure, reconnection, drop, ...) <h3>Additions</h3>
</li>
</ul>
<ul>
<li>Sentinel support</li>
<li>Automatic reconnection if requested</li>
<li>Connection timeout</li>
<li>Ability to set number of io workers if you are working with tacopie</li>
<li><code>redis_client</code> renamed into <code>client</code></li>
<li><code>redis_subscriber</code> renamed into <code>subscriber</code></li>
<li>commands that failed to be sent (client not connected or disconnected) get their callback called with an error reply <code>connection failure</code>. This ensure that now all callbacks are always called</li>
<li>if reconnection process is enabled and succeed, failed commands are resent</li>
<li>if you send command and commit while client is not connected, it will now dismiss the commands and call their callback with an error, or resend them if reconnection is enabled. This is a change compared to the existing behavior that simply kept the commands in the buffer.</li>
<li>doxygen documentation <h3>Removals</h3>
</li>
</ul>
<ul>
<li>future_client: all functions have been merge into the redis_client</li>
<li>disconnection_callback: it is now replaced by the connection callback</li>
</ul>
<p>This is a major release with lots of breaking changes. It aims to enable high availability configuration as well as improved consistency with an enhanced design.</p>
<p>If you are upgrading please consider the following breaking changes:</p><ul>
<li><code>redis_client</code> is now <code>client</code> and <code>redis_subscriber</code> is now <code>subscriber</code></li>
<li><code>future_client</code> has been removed, but it is actually merged into <code>client</code>. Simply switch from <code>future_client</code> to <code>client</code> and you will have the same behavior</li>
<li><code>disconnection_callback</code> has been removed and replaced by a <code>connection_callback</code>. If you are looking for exact same behavior, you will have to check if the state param is equal to <code>dropped</code>.</li>
<li>commands callbacks are always called. In case of failure, an error reply is passed in.</li>
</ul>
<p>Any other changes should not be breaking changes but you might be interested into the added features.</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.5.4">v3.5.4</a></h2>
<h3>Tag</h3>
<p><code>3.5.4</code>. </p><h3>Date</h3>
<p>August 24th, 2017 </p><h3>Changes</h3>
<ul>
<li>fix issue #86 by changing some int32_t to int64_t (was causing overflow leading to stuck program on some architecture)</li>
<li>improve travis build with caching <h3>Additions</h3>
</li>
</ul>
<ul>
<li>ZADD command</li>
<li>CLIENT KILL <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.5.3">v3.5.3</a></h2>
<h3>Tag</h3>
<p><code>3.5.3</code>. </p><h3>Date</h3>
<p>July 2nd, 2017 </p><h3>Changes</h3>
<ul>
<li>bump tacopie to fix #85 - select keep sleeping and does not process incoming read/write events <h3>Additions</h3>
</li>
</ul>
<p>None </p><h3>Removals</h3>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.5.2">v3.5.2</a></h2>
<h3>Tag</h3>
<p><code>3.5.2</code>. </p><h3>Date</h3>
<p>June 19th, 2017 </p><h3>Changes</h3>
<ul>
<li>Fix TACOPIE_CMAKE_ARGS getting converted to a string instead of a list</li>
<li>Fix Issue 76 (CMake install dir)</li>
<li>bump tacopie - fixes to address high CPU usage issues. <h3>Additions</h3>
</li>
</ul>
<ul>
<li>Expose wait_for_removal in .disconnect of redis_client redis_subcriber future_client <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.5.1">v3.5.1</a></h2>
<h3>Tag</h3>
<p><code>3.5.1</code>. </p><h3>Date</h3>
<p>April 30th, 2017 </p><h3>Changes</h3>
<ul>
<li>Fix compilations on windows</li>
<li>Fix reconnection behavior</li>
<li>Do not clear commands/callback buffer on calling commit or sync_commit while client is disconnected. <h3>Additions</h3>
</li>
</ul>
<p>None </p><h3>Removals</h3>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.5.0">v3.5.0</a></h2>
<h3>Tag</h3>
<p><code>3.5.0</code>. </p><h3>Date</h3>
<p>April 9th, 2017 </p><h3>Changes</h3>
<p>None </p><h3>Additions</h3>
<ul>
<li>New feature - Update tacopie ref - Provide support for Unix socket. Simply pass in 0 as the port when building a <code>redis_client</code>, <code>redis_subscriber</code> or <code>future_client</code>. Then, the host will automatically be treated as the path to a Unix socket instead of a real host. - More in #67. <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.4.0">v3.4.0</a></h2>
<h3>Tag</h3>
<p><code>3.4.0</code>. </p><h3>Changes</h3>
<ul>
<li>Change: update tacopie ref - IO Service is now based on <code>select</code> and not on <code>poll</code> anymore to solve some issues encountered on windows due to the buggy implementation of <code>poll</code> on windows Systems. <h3>Additions</h3>
</li>
</ul>
<p>None </p><h3>Removals</h3>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.3.0">v3.3.0</a></h2>
<h3>Tag</h3>
<p><code>3.3.0</code>. </p><h3>Changes</h3>
<ul>
<li>Rename <code>redis_client::before_callback</code> into <code>redis_client::set_callback_runner</code> which is more relevant.</li>
<li>Before, <code>future_client</code> automatically called <code>.commit</code> when sending a command, meaning that no pipelining was done for the <code>future_client</code>. This has been changed and the <code>future_client</code> do not call <code>.commit</code> anymore: this is a <b>breaking</b> change and you <b>must</b> call <code>.commit</code> or <code>.sync_commit</code> when you wish the commands to be effectively sent. Please refer to the examples if necessary. <h3>Additions</h3>
</li>
</ul>
<ul>
<li>Add <code>commit</code> and <code>sync_commit</code> methodsto the <code>future_client</code> for pipelining support.</li>
<li>documentation for <code>redis_client::before_callback</code> has been added</li>
<li>documentation for <code>future_client</code> has been added <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.2.1">v3.2.1</a></h2>
<h3>Tag</h3>
<p><code>3.2.1</code>. </p><h3>Changes</h3>
<ul>
<li>Fix static initialization order fiasco condition</li>
<li>Change <code>__CPP_REDIS_USE_TACOPIE</code> (cmake variable: <code>USE_TACOPIE</code>) into <code>__CPP_REDIS_USE_CUSTOM_TCP_CLIENT</code> (cmake variable: <code>USE_CUSTOM_TCP_CLIENT</code>). Of course, the meaning is now the opposite. <h3>Additions</h3>
</li>
</ul>
<p>None </p><h3>Removals</h3>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.2.0">v3.2.0</a></h2>
<h3>Tag</h3>
<p><code>3.2.0</code>. </p><h3>Changes</h3>
<ul>
<li>tacopie is no longer a mandatory dependency, but just provided by default and can be override if necessary. <h3>Additions</h3>
</li>
</ul>
<ul>
<li>add a new interface, <code>cpp_redis::network::tcp_client_iface</code> that allows you to use your own tcp_client in place of tacopie. <h3>Removals</h3>
</li>
</ul>
<ul>
<li>The <code>sync_client</code> has been removed as it was a duplicate of <code>redis_client::sync_commit</code> but with a different implementation based on futures. Please use <code>redis_client</code> and call <code>sync_commit</code> instead.</li>
</ul>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.1.2">v3.1.2</a></h2>
<h3>Tag</h3>
<p><code>3.1.2</code>. </p><h3>Changes</h3>
<ul>
<li>rename the <code>setbit()</code> function into <code>setbit()</code> in order to avoid conflict with the standard library macro <code>setbit</code> causing compilation error. <h3>Additions</h3>
</li>
</ul>
<ul>
<li>add <code>send()</code> method to the <code>sync_client</code> and <code>future_client</code>. <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.1.1">v3.1.1</a></h2>
<h3>Tag</h3>
<p><code>3.1.1</code>. </p><h3>Changes</h3>
<ul>
<li>Fix: subscriber callbacks were sometimes not called due to poll not listening to the appropriate events. Mostly impacted windows as referred in #51, but unix version might also be impacted. Fixed by updating the reference tacopie which contains the fix. <h3>Additions</h3>
</li>
</ul>
<p>None </p><h3>Removals</h3>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.1.0">v3.1.0</a></h2>
<h3>Tag</h3>
<p><code>3.1.0</code>. </p><h3>Changes</h3>
<ul>
<li>Fix: compilation for specific windows compilers concerning atomic variables</li>
<li>Fix: handle correctly array replies with negative size by returning a null reply instead of throwing an invalid format exception</li>
<li>Fix: Bump tacopie version to retrieve a fix concerning gethostbyname() thread-safety issue on unix</li>
<li>Fix: compilation for programs based on Qt ('slots' conflict) <h3>Additions</h3>
</li>
</ul>
<ul>
<li>Add some overloads for the Z set functions to support floating point values</li>
<li>Add an auth method to the subscriber class to allow a subscriber to authenticate on the redis server <h3>Removals</h3>
</li>
</ul>
<p>None</p>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/3.0.0">v3.0.0</a></h2>
<h3>Tag</h3>
<p><code>3.0.0</code>. </p><h3>Changes</h3>
<ul>
<li>Rewrite the network side of cpp_redis by using the <a href="https://github.com/Cylix/tacopie">tacopie library</a> <h3>Additions</h3>
</li>
</ul>
<ul>
<li>Tacopie is now a submodule of cpp_redis <h3>Removals</h3>
</li>
</ul>
<ul>
<li>All network related code</li>
</ul>
<h2><a href="https://github.com/Cylix/cpp_redis/releases/tag/2.2">v2.2</a></h2>
<h3>Tag</h3>
<p><code>2.2</code>. </p><h3>Changes</h3>
<ul>
<li>Bug patch</li>
<li>io_service is no longer a singleton</li>
<li><code>redis_client</code> and <code>redis_subscriber</code> instances can be assigned specific io_service <h3>Additions</h3>
</li>
</ul>
<ul>
<li>Integration Tests</li>
<li>Travis Integration</li>
<li><a href="https://github.com/Cylix/cpp_redis/wiki">Wiki</a></li>
<li>Port of the library on Windows</li>
<li>Support for acknowledgement callbacks for <code>cpp_redis::redis_subscriber</code></li>
<li>Logging system</li>
<li>Compilation Customizations <h3>Removals</h3>
</li>
</ul>
<p>None </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>