couchbase 1.2.0.beta-x86-mingw32 → 1.2.0-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/.travis.yml +1 -1
  2. data/Makefile +3 -0
  3. data/README.markdown +15 -4
  4. data/RELEASE_NOTES.markdown +513 -0
  5. data/couchbase.gemspec +0 -1
  6. data/ext/couchbase_ext/arguments.c +161 -244
  7. data/ext/couchbase_ext/arithmetic.c +29 -37
  8. data/ext/couchbase_ext/bucket.c +252 -219
  9. data/ext/couchbase_ext/couchbase_ext.c +540 -417
  10. data/ext/couchbase_ext/couchbase_ext.h +218 -191
  11. data/ext/couchbase_ext/delete.c +30 -27
  12. data/ext/couchbase_ext/extconf.rb +15 -3
  13. data/ext/couchbase_ext/get.c +45 -37
  14. data/ext/couchbase_ext/http.c +95 -74
  15. data/ext/couchbase_ext/multithread_plugin.c +1201 -0
  16. data/ext/couchbase_ext/observe.c +42 -37
  17. data/ext/couchbase_ext/result.c +17 -20
  18. data/ext/couchbase_ext/stats.c +30 -28
  19. data/ext/couchbase_ext/store.c +46 -39
  20. data/ext/couchbase_ext/timer.c +11 -11
  21. data/ext/couchbase_ext/touch.c +30 -27
  22. data/ext/couchbase_ext/unlock.c +30 -27
  23. data/ext/couchbase_ext/utils.c +166 -89
  24. data/ext/couchbase_ext/version.c +29 -26
  25. data/lib/action_dispatch/middleware/session/couchbase_store.rb +2 -2
  26. data/lib/active_support/cache/couchbase_store.rb +6 -6
  27. data/lib/couchbase.rb +1 -0
  28. data/lib/couchbase/bucket.rb +6 -11
  29. data/lib/couchbase/cluster.rb +105 -0
  30. data/lib/couchbase/utils.rb +8 -5
  31. data/lib/couchbase/version.rb +1 -1
  32. data/lib/couchbase/view.rb +51 -5
  33. data/lib/couchbase/view_row.rb +1 -1
  34. data/lib/ext/multi_json_fix.rb +13 -9
  35. data/lib/rack/session/couchbase.rb +11 -7
  36. data/tasks/compile.rake +1 -1
  37. data/tasks/test.rake +40 -34
  38. data/tasks/util.rake +1 -1
  39. data/test/setup.rb +9 -2
  40. data/test/test_arithmetic.rb +37 -0
  41. data/test/test_async.rb +22 -18
  42. data/test/test_unlock.rb +0 -1
  43. data/test/test_utils.rb +32 -0
  44. metadata +13 -23
  45. data/HISTORY.markdown +0 -215
data/.travis.yml CHANGED
@@ -9,7 +9,7 @@ before_install:
9
9
  - wget -O- http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add -
10
10
  - echo deb http://packages.couchbase.com/snapshot/ubuntu oneiric oneiric/main | sudo tee /etc/apt/sources.list.d/couchbase.list
11
11
  - sudo apt-get update
12
- - sudo apt-get -y install libevent-dev libvbucket-dev libcouchbase-dev
12
+ - sudo apt-get -y install libcouchbase2-dev
13
13
 
14
14
  rvm:
15
15
  - 1.8.7
data/Makefile ADDED
@@ -0,0 +1,3 @@
1
+ all:
2
+ $(MAKE) -C../.. ruby-client
3
+
data/README.markdown CHANGED
@@ -1,6 +1,13 @@
1
- # Couchbase Ruby Client [![Build Status](https://secure.travis-ci.org/couchbase/couchbase-ruby-client.png?branch=master)](http://travis-ci.org/couchbase/couchbase-ruby-client)
1
+ # Couchbase Ruby Client
2
2
 
3
- This is the official client library for use with Couchbase Server.
3
+ This is the official client library for use with Couchbase Server. There
4
+ are related libraries available:
5
+
6
+ * [couchbase-model][6] the ActiveModel implementation, git repository:
7
+ [https://github.com/couchbase/couchbase-ruby-model][7]
8
+
9
+ * [em-couchbase][8] EventMachine friendly implementation of couchbase
10
+ client, git repository: [https://github.com/couchbase/couchbase-ruby-client-em][9]
4
11
 
5
12
  ## SUPPORT
6
13
 
@@ -436,7 +443,6 @@ store a couple of posts using memcached API:
436
443
  c['hello-world'] = {:title => 'Hello World',
437
444
  :body => 'Well hello and welcome to my new blog...',
438
445
  :date => '2009/01/15 15:52:20'}
439
- c.all_docs.count #=> 3
440
446
 
441
447
  Now let's create design doc with sample view and save it in file
442
448
  'blog.json':
@@ -486,7 +492,7 @@ You can also use Enumerator to iterate view results
486
492
 
487
493
  require 'date'
488
494
  posts_by_date = Hash.new{|h,k| h[k] = []}
489
- enum = c.all_docs(:include_docs => true).each # request hasn't issued yet
495
+ enum = c.recent_posts(:include_docs => true).each # request hasn't issued yet
490
496
  enum.inject(posts_by_date) do |acc, doc|
491
497
  acc[date] = Date.strptime(doc['date'], '%Y/%m/%d')
492
498
  acc
@@ -519,3 +525,8 @@ the error is detected.
519
525
  [3]: http://www.couchbase.com/develop/c/current
520
526
  [4]: https://github.com/mxcl/homebrew/pulls/avsej
521
527
  [5]: http://code.google.com/p/memcached/wiki/BinaryProtocolRevamped
528
+ [6]: https://rubygems.org/gems/couchbase-model
529
+ [7]: https://github.com/couchbase/couchbase-ruby-model
530
+ [8]: https://rubygems.org/gems/em-couchbase
531
+ [9]: https://github.com/couchbase/couchbase-ruby-client-em
532
+
@@ -0,0 +1,513 @@
1
+ # Release Notes
2
+
3
+ This document is a list of user visible feature changes and important
4
+ bugfixes. Do not forget to update this doc in every important patch.
5
+
6
+ ## 1.2.0 (2012-12-12)
7
+
8
+ 30 files changed, 2079 insertions(+), 662 deletions(-)
9
+
10
+ * Specialized io plugin for releasing Ruby GVL (thanks to
11
+ Sokolov Yura aka funny_falcon).
12
+
13
+ * Ruby 1.9.x uses global lock for ensuring integrity, and blocking
14
+ calls should be called inside rb_thread_blocking_region to allow
15
+ other threads to be runned.
16
+
17
+ * Ruby 1.8.7 have only green threads, so that rb_thread_schedule
18
+ should be called manually.
19
+
20
+ * RCBC-42 Catch exceptions from ruby callbacks
21
+
22
+ * RCBC-99 read out the StringIO contents in json gem monkey patch
23
+
24
+ * Use marshal serializer by default for session store
25
+
26
+ * Remove debugger development dependency
27
+
28
+ * Fix memory leaks and performance improvements
29
+
30
+ ## 1.2.0.z.beta5 (2012-11-29)
31
+
32
+ 25 files changed, 1419 insertions(+), 1230 deletions(-)
33
+
34
+ * RCBC-95 Use response body to clarify Couchbase::Error::HTTP
35
+
36
+ * Fix memory leaks: in async mode context wasn't freed
37
+
38
+ * Allow to setup default initial value for INCR/DECR on per connection
39
+ level.
40
+
41
+ * Make error message about libcouchbase dependency more verbose
42
+
43
+ ## 1.2.0.z.beta4 (2012-11-21)
44
+
45
+ 27 files changed, 311 insertions(+), 123 deletions(-)
46
+
47
+ * Increase default connection timeout for Views up to 75 seconds
48
+
49
+ * RCBC-94 Reset global exception after usage
50
+
51
+ * RCBC-89 Do not expose docs embedded in HTTP response. Use binary
52
+ protocol for it.
53
+
54
+ * Remove all_docs mentions. It isn't recommended to use it because of
55
+ performance issues
56
+
57
+ * Protect against non string values in :plain mode. Will raise error
58
+ if the value given isn't a string.
59
+
60
+ * RCBC-90 Update documentation about session store
61
+
62
+ * Make rack session store adapter quiet
63
+
64
+ * Update to recent libcouchbase API
65
+
66
+ * Adjust version check for MultiJson monkeypatch (8098da1)
67
+
68
+ * Do not hide ValueFormat reason
69
+
70
+ ## 1.2.0.z.beta3 (2012-10-16)
71
+
72
+ 18 files changed, 241 insertions(+), 57 deletions(-)
73
+
74
+ * RCBC-52 Implement bucket create/delete operations
75
+
76
+ * Propogate status code for HTTP responses
77
+
78
+ * RCBC-87 Fix build error on macos
79
+
80
+ * Use global scope to find Error classes (thanks to @wr0ngway)
81
+
82
+ * Fix memory leaks
83
+
84
+ * Update to recent libcouchbase API
85
+
86
+ ## 1.2.0.z.beta2 (2012-09-21)
87
+
88
+ 3 files changed, 6 insertions(+), 2 deletions(-)
89
+
90
+ * RCBC-82 Not all rubies are fat on MacOS. Fixes build there
91
+
92
+ ## 1.2.0.z.beta (2012-09-18)
93
+
94
+ 2 files changed, 5 insertions(+), 1 deletion(-)
95
+
96
+ * Fix version ordering by using ".z" prefix before .beta
97
+
98
+ ## 1.2.0.beta (2012-09-18)
99
+
100
+ 51 files changed, 9301 insertions(+), 3364 deletions(-)
101
+
102
+ * RCBC-81 Protect against NoMethodError in extconf.rb. Fixes
103
+ gem installation
104
+
105
+ * RCBC-79 Use RESTful flush
106
+
107
+ * Various build fixes
108
+
109
+ * Add attribute reader for Error::Base status code
110
+
111
+ * CCBC-98 Expose client temporary failure error
112
+
113
+ * RCBC-28 Implement Bucket#unlock
114
+
115
+ * Fix CAS conversion for Bucket#delete method for 32-bit systems
116
+
117
+ ## 1.1.5 (2012-09-17)
118
+
119
+ 3 files changed, 9 insertions(+), 5 deletions(-)
120
+
121
+ * RCBC-81 Fixed installing issue on MacOS.
122
+
123
+ ## 1.1.4 (2012-08-30)
124
+
125
+ 5 files changed, 64 insertions(+), 30 deletions(-)
126
+
127
+ * RCBC-37 Allow to pass intial list of nodes which will allow to
128
+ iterate addresses until alive node will be found.
129
+
130
+ Couchbase.connect(:node_list => ['example.com:8091', 'example.org:8091', 'example.net'])
131
+
132
+ * RCBC-70 Fixed UTF-8 in the keys. Original discussion
133
+ https://groups.google.com/d/topic/couchbase/bya0lSf9uGE/discussion
134
+
135
+ ## 1.2.0.dp6 (2012-06-28)
136
+
137
+ 21 files changed, 1520 insertions(+), 428 deletions(-)
138
+
139
+ * RCBC-47 Allow to skip username for protected buckets. The will use
140
+ bucket name for credentials.
141
+
142
+ * Expose number of replicas to the user
143
+
144
+ * RCBC-6 Implement OBSERVE command
145
+
146
+ * RCBC-49 :observe option for storage functions
147
+
148
+ * RCBC-50 Allow to read keys from replica
149
+
150
+ * RCBC-57 Expose timers API from libcouchbase
151
+
152
+ * RCBC-59 Replicate flags in Bucket#cas operation
153
+
154
+ * Apply timeout value before connection. Currently libcouchbase shares
155
+ timeouts for connection and IO operations. This patch allows to
156
+ setup timeout on the instantiating the connection.
157
+
158
+ * RCBC-39 Allow to specify delta for incr/decr in options
159
+
160
+ * RCBC-40 Fix Bucket#cas operation behaviour in async mode. The
161
+ callback of the Bucket#cas method is triggered only once, when it
162
+ fetches old value, and it isn't possible to receive notification if
163
+ the next store operation was successful. Example, append JSON
164
+ encoded value asynchronously:
165
+
166
+ c.default_format = :document
167
+ c.set("foo", {"bar" => 1})
168
+ c.run do
169
+ c.cas("foo") do |val|
170
+ case val.operation
171
+ when :get
172
+ val["baz"] = 2
173
+ val
174
+ when :set
175
+ # verify all is ok
176
+ puts "error: #{ret.error.inspect}" unless ret.success?
177
+ end
178
+ end
179
+ end
180
+ c.get("foo") #=> {"bar" => 1, "baz" => 2}
181
+
182
+ * RCBC-43 More docs and examples on views
183
+
184
+ * RCBC-37 Bootstrapping using multiple nodes
185
+
186
+ Couchbase.connect(:node_list => ['example.com:8091', 'example.org:8091', 'example.net'])
187
+
188
+ * Inherit StandardError instead RuntimeError for errors
189
+
190
+ ## 1.2.0.dp5 (2012-06-15)
191
+
192
+ 12 files changed, 939 insertions(+), 20 deletions(-)
193
+
194
+ * Integrate with Rack and Rails session store
195
+
196
+ # rack
197
+ require 'rack/session/couchbase'
198
+ use Rack::Session::Couchbase
199
+
200
+ # rails
201
+ require 'action_dispatch/middleware/session/couchbase_store'
202
+ AppName::Application.config.session_store :couchbase_store
203
+
204
+ * Implement cache store adapter for Rails
205
+
206
+ cache_options = {
207
+ :bucket => 'protected',
208
+ :username => 'protected',
209
+ :password => 'secret',
210
+ :expires_in => 30.seconds
211
+ }
212
+ config.cache_store = :couchbase_store, cache_options
213
+
214
+ * Implement key prefix (simple namespacing)
215
+
216
+ Couchbase.connect(:key_prefix => "prefix:")
217
+
218
+ * Allow to force assembling result Hash for multi-get
219
+
220
+ connection.get("foo", "bar")
221
+ #=> [1, 2]
222
+ connection.get("foo", "bar", :assemble_hash => true)
223
+ #=> {"foo" => 1, "bar" => 2}
224
+
225
+ ## 1.2.0.dp4 (2012-06-07)
226
+
227
+ 4 files changed, 34 insertions(+), 19 deletions(-)
228
+
229
+ * Update replace documentation: it accepts :cas option
230
+
231
+ * RCBC-36 Fix segfault. Ocassional segfault when accessing the
232
+ results of a View. https://gist.github.com/2883925
233
+
234
+ ## 1.2.0.dp3 (2012-06-06)
235
+
236
+ 4 files changed, 22 insertions(+), 4 deletions(-)
237
+
238
+ * Fix for multi_json < 1.3.3
239
+
240
+ * Break out from event loop for non-chunked responses (fix creating
241
+ design create)
242
+
243
+ ## 1.2.0.dp2 (2012-06-06)
244
+
245
+ 22 files changed, 859 insertions(+), 253 deletions(-)
246
+
247
+ * RCBC-31 Make Bucket#get more consistent. The pattern of using more
248
+ than one argument to determine if an array should be returned is not
249
+ idiomatic. Consider the case of a multi-get in an application where
250
+ I have n items to return. If there happens to be only one item it
251
+ will be treated differently than if there happens to be 2 items.
252
+
253
+ get(["foo"]) #=> ["bar"]
254
+ get("foo") #=> "bar"
255
+ get(["x"], :extended => true) #=> {"x"=>["xval", 0, 18336939621176836096]}
256
+
257
+ * Use monotonic high resolution clock
258
+
259
+ * Implement threshold for outgoing commands
260
+
261
+ * Allow to stop event loop from ruby
262
+
263
+ * RCBC-35 Fix the View parameters escaping. More info at
264
+ https://gist.github.com/2775050
265
+
266
+ * RCBC-34 Use multi_json gem. json_gem compatibility (require
267
+ 'yajl/json_gem') is notorious for causing all kinds of issues with
268
+ various gems. The most compatible way to use yajl is to call
269
+ Yajl::Parser and Yajl::Encoder directly.
270
+
271
+ * Allow to block and wait for part of the requests
272
+
273
+ * Fix view iterator. It doesn't lock event loop anymore
274
+
275
+ * Define views only if "views" key presented
276
+
277
+ * Require yajl as development dependency
278
+
279
+ * Implement get with lock operation
280
+
281
+ * Update documentation
282
+
283
+ ## 1.1.3 (2012-07-27)
284
+
285
+ 5 files changed, 192 insertions(+), 101 deletions(-)
286
+
287
+ * RCBC-64 The Couchbase::Bucket class hasn't implemented the #dup
288
+ method. So it caused SEGFAULT. The patch is implementing correct
289
+ function, which copy the internals and initializes new connection.
290
+
291
+ * RCBC-59 The flags might be reset if caller will use
292
+ Couchbase::Bucket#cas operation. Here is IRB session demostrating
293
+ the issue:
294
+
295
+ irb>Couchbase.bucket.set("foo", "bar", :flags => 0x100)
296
+ 17982951084586893312
297
+ irb> Couchbase.bucket.cas("foo") { "baz" }
298
+ 1712422461213442048
299
+ irb> Couchbase.bucket.get("foo", :extended => true)
300
+ ["baz", 0, 1712422461213442048]
301
+
302
+
303
+ * RCBC-60 Make object_space GC protector per-bucket object. Previous
304
+ version provided not completely thread-safe bucket instance, because
305
+ it was sharing global hash for protecting objects, created in
306
+ extension, from garbage collecting.
307
+
308
+ ## 1.1.2 (2012-06-05)
309
+
310
+ 5 files changed, 9 insertions(+), 4 deletions(-)
311
+
312
+ * Upgrade libcouchbase dependency to 1.0.4. Version 1.0.4 includes
313
+ important stability fixes.
314
+
315
+ * Backport debugger patch. The gem used to require debugger as
316
+ development dependency. Unfortunately ruby-debug19 isn't supported
317
+ anymore for ruby 1.9.x. But there is new gem 'debugger'. This patch
318
+ replaces this dependency.
319
+
320
+ ## 1.2.0.dp (2012-04-10)
321
+
322
+ 19 files changed, 1606 insertions(+), 93 deletions(-)
323
+
324
+ * Properly handle hashes as Couchbase.connection_options
325
+
326
+ * Implement views
327
+
328
+ * Use verbose mode by default throwing exceptions on NOT_FOUND errors.
329
+ This means that quiet attribute is false now on new connections.
330
+
331
+ * Documentation fixes
332
+
333
+ ## 1.1.1 (2012-03-19)
334
+
335
+ 5 files changed, 83 insertions(+), 23 deletions(-)
336
+
337
+ * Flags are used differently in different clients for example between
338
+ Python and Ruby. This fix will force the format to a known value
339
+ irrespective of the flags.
340
+
341
+ * Calls between Ruby and C libraries for Couchbase which involved
342
+ default arguments had an associated arity of -1 which was not being
343
+ handled correctly. That is being handled correctly now.
344
+
345
+ ## 1.1.0 (2012-03-07)
346
+
347
+ 27 files changed, 2460 insertions(+), 849 deletions(-)
348
+
349
+ * With the usage of the URI parser from stdlib it is possible to
350
+ validate the bucket URI more strictly. Also, it is possible to
351
+ specify credentials in the URI like:
352
+ http://username:password@example.com:8091/pools/default/buckets/custom
353
+
354
+ * The "default" connection is available in thread local storage. This
355
+ mean that using the Couchbase.bucket method it is possible to get
356
+ access to current connection and there is no need to share
357
+ connections when running in multi-thread environment. Each thread
358
+ has its own connection reference.
359
+
360
+ * The direct dependency on libevent and sasl has been removed. Now the
361
+ library doesn't require libevent headers installed.
362
+
363
+ * The disconnect and reconnect interfaces are implemented which
364
+ provide routines for explicit resource management. Connections were
365
+ freed only when the Garbage Collector found that the connection was
366
+ not being used. Now it's possible for the client to check if the
367
+ bucket was connected using 'connected?' or 'disconnect' it manually
368
+ or 'reconnect' using old settings.
369
+
370
+ * There were spurious timeout issues with a compound statement like
371
+ below. No timeout will occur unless there is a problem with the
372
+ connection.
373
+
374
+ connection.run do
375
+ connection.get("foo") {|ret| puts "got foo = #{ret.value}"}
376
+ sleep(5)
377
+ end
378
+
379
+ * It is not required to install libcouchbase or libvbucket on windows.
380
+
381
+ * It is possible to store nil as a value. It is possible to
382
+ distinguish a nil value from a missing key by looking at at the
383
+ value returned and the flags and CAS values as well.
384
+
385
+ * Based on the time out fix (CCBC-20), clients will be notified when
386
+ the connection was dropped or host isn't available.
387
+
388
+ ## 1.0.0 (2012-03-01)
389
+
390
+ 50 files changed, 4696 insertions(+), 2647 deletions(-)
391
+
392
+ * Port library to use libcouchbase instead of memcached gem.
393
+ Implemented following operations:
394
+
395
+ * get, []
396
+ * set, []=
397
+ * add
398
+ * replace
399
+ * append
400
+ * prepend
401
+ * compare-and-swap
402
+ * arithmetic (incr/decr)
403
+ * flush
404
+ * stats
405
+ * delete
406
+ * touch
407
+
408
+ * Introduce support for three data formats:
409
+
410
+ * document
411
+ * marshal
412
+ * plain
413
+
414
+ * Removed Views support
415
+
416
+ * Added benchmarks, couchbase vs. memcached vs. dalli
417
+
418
+ * Implement asynchronous protocol
419
+
420
+ * e36c2e7 Implement basic commands
421
+
422
+ ## 0.9.8 (2011-12-16)
423
+
424
+ 3 files changed, 8 insertions(+), 3 deletions(-)
425
+
426
+ * RCBC-10 Always specify credentials for non-default buckets. It was
427
+ impossible to store data in non-default buckets
428
+
429
+ ## 0.9.7 (2011-10-05)
430
+
431
+ 7 files changed, 31 insertions(+), 19 deletions(-)
432
+
433
+ * Fix design doc removing
434
+
435
+ * Fix 'set' method signature: add missing options argument
436
+
437
+ * Rename gem to 'couchbase' for easy of use. The github project still
438
+ is 'couchbase-ruby-client'
439
+
440
+ ## 0.9.6 (2011-10-04)
441
+
442
+ 13 files changed, 609 insertions(+), 99 deletions(-)
443
+
444
+ * Fix bug with decoding multiget result
445
+
446
+ * Allow create design documents from IO and String
447
+
448
+ * Rename 'json' format to 'document', and describe possible formats
449
+
450
+ * Allow to handle errors in view result stream
451
+
452
+ * Remove dependency on libyajl library: it bundled with yaji now
453
+
454
+ ## 0.9.5 (2011-08-24)
455
+
456
+ 4 files changed, 59 insertions(+), 28 deletions(-)
457
+
458
+ * Update README. Make it more human-friendly
459
+
460
+ * Removed depency on will_paginate in development mode
461
+
462
+ ## 0.9.4 (2011-08-01)
463
+
464
+ 24 files changed, 1240 insertions(+), 78 deletions(-)
465
+
466
+ * Use streaming json parser to iterate over view results
467
+
468
+ * Update memcached gem dependency to v1.3
469
+
470
+ * Proxy TOUCH command to memcached client
471
+
472
+ * Fix minor bugs in RestClient and Document classes
473
+
474
+ * Disable CouchDB API for nodes without 'couchApiBase' key provided.
475
+
476
+ * Fix bug with unicode parsing in config listener
477
+
478
+ * 61f394e RCBC-5 Add Dave's test case: ensure memcached client
479
+ initialized. Fixes Timeout error on connecting to membase with
480
+ Couchbase.new on Ruby 1.8.7
481
+
482
+ ## 0.9.3 (2011-07-29)
483
+
484
+ 6 files changed, 167 insertions(+), 9 deletions(-)
485
+
486
+ * Use Latch (via Mutex and ConditionVariable) to wait until initial
487
+ setup will be finished.
488
+
489
+ * Update prefix for development views (from '$dev_' to 'dev_')
490
+
491
+ ## 0.9.2 (2011-07-28)
492
+
493
+ 5 files changed, 31 insertions(+), 20 deletions(-)
494
+
495
+ * Use zero TTL by default to store records forever
496
+
497
+ * Update documentation
498
+
499
+ * Wait until configuration is done
500
+
501
+ ## 0.9.1 (2011-07-25)
502
+
503
+ 3 files changed, 5 insertions(+), 2 deletions(-)
504
+
505
+ * Minor bugfix for RestClient initialization
506
+
507
+ ## 0.9.0 (2011-07-25)
508
+
509
+ 19 files changed, 1174 insertions(+)
510
+
511
+ * Initial public release. It suppors most of the binary protocol
512
+ commands through memcached gem and also is able to listen to bucket
513
+ configuration and make View requests.