News

4.2.1 / 2013-02-09

  • bump http-parser requirement to 0.8.1
  • fix User-Agent typo
  • fix https request by proxy
  • move from epydoc to sphinx

4.2.0 / 2012-08-01

  • fix a race condition while releasing the socket on incomplete read

4.1.5 / 2012-07-28

  • catch NoMoreData error on headers parsing
  • fix Host Header

4.1.4 / 2012-07-24

  • add the skip_body method to the response object
  • fix connection reset
  • fix unicode encoding in oauth
  • remove max_connection setting in the client

4.1.3 / 2012-06-06

  • improvment: Enable multivqlue field in multipart POST content
  • fix Content-Type for multipart content type
  • Fix debian packaging
  • Support cookie in response and request
  • use http-parser 0.7.5
  • improve Error handling
  • improve disconnections support
  • support socketpool 0.4.1: improve connection reuse & keepalive.

4.1.2 / 2012-02-06

  • proxy contrib: set content length if provided
  • use latest http-parser 0.7.4

4.1.1 / 2012-02-01

  • update doc

4.1.0 / 2012-01-31

  • fix connection reusing. When connection is closed or an EPIPE/EAGAIN error happen, we now retry it.
  • fix wgsi_proxy contrib
  • fix examples

4.0.0 / 2012-01-25

  • Replace the socket pool by socketpool improve connection handling and better management of gevent & eventlet.
  • Fix NoMoreData issue
  • Fix SSL connections
  • multipart forms: quote is now configurable & flush size cache

3.3.1 / 2011-09-18

  • Add hook for BoundaryItem subclasses to handle unreadable values
  • Add realm support to restkit
  • Fix restcli –shell, upgrade it for IPython 0.11
  • Stop catching KeyboardInterrupt and SystemExit exceptions
  • Make sure we don’t release the socket twice

3.3.0 / 2011-06-20

  • New HTTP parser, using python http-parser in C based on http-parser from Ryan Dahl.
  • Fix UnboundLocalError
  • Sync oauth with last python-oauth2 (fix POST & encoding issues)
  • Improve sending

Breaking changes:

  • Headers is an IOrderdDict object now, wich means by default you can get any headers case insensitively using get or headers[key], as a result the method iget has been removed.

3.2.1 / 2011-03-22

  • Fix sending on linux.

3.2 / 2011-02-18

  • Some deep rewrite of the client. Requests and Connections are now maintened in their own instances, so we don’t rely on client instance to close or release the connection Also we don’t pass local variable to handle a request. At the end each requests are more isolated and we are fully threadsafe.
  • Improve error report.
  • Handle case where the connection is closed but the OS still accept sending. From the man: “When the message does not fit into the send buffer of the socket, send() normally blocks, unless th socket has been placed in nonblocking I/O mode.”“” . Spotted by loftus on irc. Thanks.

Breaking changes:

  • Rewrite filters handling. We now pass a request instance to the on_request filters. If a request filter return a response, we stop to perform here. response filters accept now the response and request instances as arguments. There is no more on_connect filters (it was a bad idea)
  • Proxy support. Proxies are now supported by passing the argument “use_proxy=True” to client, request and resources objects.

3.0 / 2011-02-02

  • New Connection management: Better concurrency handling and iddle connections are now closed after a time.
  • Improved Client.
  • Fix redirect
  • Better error handling
  • Timeout can now be set on each request.
  • Major refactoring. consolidation of some module, ease the HTTP parser code.
  • Fix timeout errors.

2.3.0 / 2010-11-25

  • Refactored Http Connections management (reuse connections). restkit.pool is now replaced by restkit.conn module. SimplePool has been replaced by TConnectionManager (threadsafe). Now by default all connections are reusing connections using TConnectionManager (10 connections per route).
  • Improved Gevent & Eventlet support
  • Added an decompress option to request function and Resource instance to decompress the body or not. By default it’s true.
  • Added params_dict to keywords arguments of Resource instances methods. Allows you to pass any argument to the query.
  • Fix response 100-continue
  • Fix compressed atatchments
  • Fix body readline
  • Fix basic authentication
  • Stop when system exit or keyboard interrupt
  • Fix oauth2

More details here .

2.2.1 / 2010-09-18

2.2.0 / 2010-09-14

  • Refactor client code. Improve header parsing
  • Fix Deflate/Gzip decompression and make it fully streamed.
  • Fix oauth2 in POST requests
  • Fix import with Python 2.5/2.4
  • Fix Exceptions
  • body, unicod_body and body_file methods have been removed from the HTTP response.

2.1.6 / 2010-09-

  • Fix debian packaging
  • Fix oauth

2.1.4 / 2008-08-11

  • Improve HTTP parsing (backport from Gunicorn)
  • Handle KeyboardInterrupt and SystemExit exceptions in client.

2.1.3 / 2008-08-11

  • Repackaged due to a spurious print.

2.1.2 / 2008-08-11

  • Fix<http://github.com/benoitc/restkit/commit/c176f2905c82b33a69e73ab63ac91784f6d7af08> a nasty bug in BasicAuth

2.1.1/ 2010-08-05

  • Fix clone and __call__, make sure we use original client_opts rather than an instance

2.1.0 / 2010-07-24

  • Added make_params, make_headers method to the Resource allowing you to modify headers and params
  • Added unauthorized method to Resource allowing you to react on 401/403, return True by default
  • make sure default pool is only set one time in the main thread in Resource object
  • Added Resouce.close() method: close the pool connections
  • Added Pool.close() method: clear the pool and stop monitoring
  • Updated Oauth2 module
  • Handle ECONNRESET error in HTTP client
  • Fix keep-alive handling
  • Fix Content-Type headerfor GET
  • Fix “Accept-Encoding” header
  • Fix HttpResponse.close() method
  • Make sure we use ssl when https scheme is used
  • Fix “__call__” and clone() methods from restkit.Resource object.

2.0 / 2010-06-28

  • Complete refactoring of pool. Now handle more concurrent connections (priority to read)
  • Added full ssl support in restkit. It needs ssl module on Python 2.5x
  • New HTTP parser.
  • Added close method to response object to make sure the socket is correctly released.
  • Improved default http client, so form objects can be directly handled.
  • Improved request function

Breaking changes:

  • Default HttpResponse isn’t any more persistent. You have to save it to reuse it. A persistent response will be provided in restkit 2.1 .
  • Deprecate HttpResponse body, unicode_body and body_file properties. They are replaced by body_string and body_stream methods.
  • Resource arguments
  • Complete refactoring of filters. Now they have to be declared when you create a resource or http client. An on_connect method can be used in filter now. This method is used before the connection happen, it’s useful for proxy support for example.
  • Oauth2 filter has been simplfied, see example

1.3.1 / 2010-04-09

  • Fixed Python 2.5 compatibility for ssl connections

1.3 / 2010-04-02

  • Added IPython shell extension (restkit –shell)
  • fix Python 2.5 compatibility
  • fix Eventlet and Gevent spools extensions
  • By default accept all methods in proxy

1.2.1 / 2010-03-08

  • Improve console client

1.2 / 2010-03-06

  • Added GEvent Support
  • Added wsgi_proxy using webob and restkit
  • Improved pool management
  • Make HTTP parsing faster.
  • Fix TeeInput

1.1.3 / 2010-03-04

  • Fix ssl connections

1.1.2 / 2010-03-02

  • More logging information
  • Fix retry loop so an error is raised instead of returning None.

1.1 / 2010-03-01

  • Improved HTTP Parser - Now buffered.
  • Logging facility

1.0 / 2010-02-28

  • New HTTP Parser and major refactoring
  • Added OAuth support
  • Added HTTP Filter
  • Added support of chunked encoding
  • Removed rest.RestClient
  • Add Connection pool working with Eventlet 0.9.6