Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

269 lines (208 sloc) 10.5 KB

Riak Python Client Release Notes

2.2.0 Feature Release - 2014-12-18

Release 2.2.0 features support for Python 3, specifically 3.3 and 3.4. This version uses the native SSL security instead of pyOpenSSL which is required for the Python 2 series.

This release also includes many bugfixes and enhancements, most notably:

2.1.0 Feature Release - 2014-09-03

Release 2.1.0 features support for Riak 2.0 capabilities including:

  • Bucket Types
  • Riak Data Types (CRDTs)
  • Search 2.0 (codename Yokozuna)
  • Security: SSL/TLS, Authentication, and Authorization

As a result of the new security features, the package now depends on pyOpenSSL and will warn if your version of OpenSSL is too old.

This release also includes many bugfixes and enhancements, most notably:

  • The default protocol is now 'pbc', not 'http'.
  • When used correctly, streaming requests no longer result in leaks from the connection pool.
  • The size of the multiget worker pool can be set when initializing the client.
  • Secondary index queries can now iterate over all pages in a query.
  • The number of times a request is retried after network failure is now configurable.
  • The additional request options basic_quorum and notfound_ok are now supported.

2.0.3 Patch Release - 2014-03-06

Release 2.0.3 includes support for 1.4.4's 2I regexp feature and fixes a few bugs:

  • Docs generation now uses the version from the top-level package.
  • Some internal uses of the deprecated RiakClient.solr were removed.
  • More errors will be caught and propagated properly from multiget requests, preventing deadlocks on the caller side.

2.0.2 Patch release - 2013-11-18

Release 2.0.2 includes support for the 1.4.1+ "timeout" option on secondary index queries.

2.0.1 Patch release - 2013-08-28

Release 2.0.1 includes a minor compatibility fix for Python 2.6 and an updated README.

2.0.0 Feature Release - 2013-07-30

Release 2.0 is the culmination of many months of rearchitecting the client. Highlights:

  • Automatic connection to multiple nodes, with request retries, through a thread-safe connection pool.
  • All Riak 1.3 and 1.4 features, including bucket properties, paginating and streaming secondary indexes, CRDT counters, client-specified timeouts, and more.
  • Cleaner, more Pythonic access to RiakObject and RiakBucket attributes, favoring properties over methods where possible.
  • Simpler representations of links (3-tuples) and index entries (2-tuples).
  • Streaming requests (keys, buckets, MapReduce, 2i) are now exposed as iterators.
  • Feature detection prevents sending requests to hosts that can't handle them.
  • Better handling of siblings -- you don't have to request them individually anymore -- and registrable resolver functions.
  • A new multiget operation that fetches a collection of keys using a pool background threads.
  • A more resilient, repeatable test suite that generates buckets and key names that are essentially random.
  • Last but not least, a brand new, more detailed documentation site!

Other features:

  • Added an encoder/decoder pair to support text/plain.
  • The Travis CI build will now install the latest Riak to run the suite against.

Other bugfixes:

  • The charset metadata can now be received via the Content-Type header on HTTP.
  • Objects with empty keys and buckets with empty names cannot be created or accessed, as they are unaddressable over HTTP.
  • Performance and compatibility of TestServer was improved.
  • Non-ASCII request bodies are better supported on HTTP.
  • Enabling and disabling search indexing on a bucket now uses the search bucket property.

1.5.2 Patch Release - 2013-01-31

Release 1.5.2 fixes some bugs and adds HTTPS/SSL support.

  • Added support for HTTPS.
  • Fixed writing of the app.config for the TestServer.
  • Reorganized the tests into multiple files and cases.
  • Some methods on RiakObject were made private where appropriate.
  • The version comparison used in feature detection was loosened to support pre-release versions of Riak.
  • Prevent fetching the protobuf package from Google Code.
  • Prefer simplejson over json when present.

1.5.1 Patch Release - 2012-10-24

Release 1.5.1 fixes one bug and some documentation errors.

  • Fix bug where http_status is used instead of http_code.
  • Fix documentation of RiakMapReduce.index method.
  • Fix documentation of RiakClient.__init__ method.

1.5.0 Feature Release - 2012-08-29

Release 1.5.0 is a feature release that supports Riak 1.2.

Noteworthy features:

  • Riak 1.2 features are now supported, including Search and 2I queries over Protocol Buffers transport. The Protocol Buffers message definitions now exist as a separate package, available on PyPi.

    NOTE: The return value of search queries over HTTP and MapReduce were changed to be compatible with the results returned from the Protocol Buffers interface.

  • The client will use a version-based feature detection scheme to enable or disable various features, including the new Riak 1.2 features. This enables compatibility with older nodes during a rolling upgrade, or usage of the newer client with older clusters.

Noteworthy bugfixes:

  • The code formatting and style was adjusted to fit PEP8 standards.
  • All classes in the package are now "new-style".
  • The PW accessor methods on RiakClient now get and set the right instance variable.
  • Various fixes were made to the TestServer and it will throw an exception when it fails to start.

1.4.1 Patch Release - 2012-06-19

Noteworthy features:

  • New Riak objects support Riak-created random keys

Noteworthy bugfixes:

  • Map Reduce queries now use "application/json" as the Content-Type

1.4.0 Feature Release - 2012-03-30

Release 1.4.0 is a feature release comprising over 117 individual commits.

Noteworthy features:

  • Python 2.6 and 2.7 are supported. On 2.6, the unittest2 package is required to run the test suite.
  • Google's official protobuf package (2.4.1 or later) is now a dependency. The package from is no longer necessary.
  • Travis-CI is enabled on the client. Go to for build status.
  • Riak 1.0+ features, namely secondary indexes and primary quora (PR/PW), are supported.
  • if_none_match is a valid request option when storing objects, and will prevent the write when set to True if the key already exists.
  • Links can be set wholesale using the set_links() method.
  • Transport-specific options can be passed through when creating a Client object.
  • A connection manager was added that will (when manipulated manually) allow connections to multiple Riak nodes. This will be fully integrated in a future release.

Noteworthy bugfixes:

  • Links now use the proper URL-encoding in HTTP headers, preventing problems with explosion from multiple encoding passes.
  • Many fixes were applied to make the Protocol Buffers transport more stable.
  • RiakObject.get_content_type() will behave properly when content type is not set.
  • Deprecated transport classes were removed since their functionality had folded into the primary transports.
  • A temporary fix was made for unicode bucket/key names which raises an error when they are used and cannot be coerced to ASCII.
  • The Erlang sources/beams for the TestServer are now included in the package.
  • MapReduce failures will now produce a more useful error message and be handled properly when no results are returned.

There are lots of other great fixes from our wonderful community. Check them out!

1.3.0 Feature Release - 2011-08-04

Release 1.3.0 is a feature release bringing a slew of updates.

Noteworthy features:

  • #37: Support for the Riak Search HTTP Interface (Mathias Meyer)
  • #36: Support to store large files in Luwak (Mathias Meyer)
  • #35: Convenience methods to enable, disable and check search indexing on Riak buckets (Mathias Meyer)
  • #34: Port of Ripple's test server to Python, allows faster testing thanks to an in-memory Riak instance (Mathias Meyer)
  • #31: New transports: A Protocol Buffers connection cache (riak.transports.pbc.RiakPbcCacheTransport), a transport to reuse the underlying TCP connections by setting SO_REUSEADDR on the socket (riak.transports.http.RiakHttpReuseTransport), and one that tries to reuse connections to the same host (riak.transports.http.RiakHttpPoolTransport) (Gilles Devaux)


  • #33: Respect maximum link header size when using HTTP. Link header is now split up into multiple headers when it exceeds the maximum size of 8192 bytes. (Mathias Meyer)
  • #41: Connections potentially not returned to the protocol buffers connection pool. (Reid Draper)
  • #42: Reset protocol buffer connection up on connection error (Brett Hoerner)

1.2.2 Patch Release - 2011-06-22

Release 1.2.2 is a minor patch release.

Noteworthy fixes and improvements:

  • #29: Add an nicer API for using key filters with MapReduce (Eric Moritz)
  • #13 and #24: Let Riak generate a key when none is specified (Mark Erdmann)
  • #28: Function aliases for the Riak built-in MapReduce functions (Eric Moritz)
  • #20: Add a convenience method to create Riak object directly from file (Ana Nelson)
  • #16: Support return_body parameter when creating a new object (Stefan Praszalowicz, Andy Gross)
  • #17: Storing an object fails when it doesn't exist in Riak (Eric Moritz, Andy Gross)
  • #18: Ensure that a default content type is set when none specified (Andy Gross)
  • #22: Fix user meta data support (Mathias Meyer)
  • #23: Fix links to the wiki (Mikhail Sobolev)
  • #25: Enable support for code coverage when running tests (Mikhail Sobolev)
  • #26: Debian packaging (Dmitry Rozhkov)
Jump to Line
Something went wrong with that request. Please try again.