Changelog for Falcon 0.3.0

Breaking Changes

  • Date headers are now returned as datetime.datetime objects instead of strings.
  • The expected signature for the add_route() method of custom routers no longer includes a method_map parameter. Custom routers should, instead, call the falcon.routing.util.map_http_methods() function directly from their add_route() method if they require this mapping.

New & Improved

  • This release includes a new router architecture for improved performance and flexibility.

  • A custom router can now be specified when instantiating the API class.

  • URI templates can now include multiple parameterized fields within a single path segment.

  • Falcon now supports reading and writing cookies.

  • Falcon now supports Jython 2.7.

  • A method for getting a query param as a date was added to the Request class.

  • Date headers are now returned as datetime.datetime objects.

  • A default value can now be specified when calling Request.get_param(). This provides an alternative to using the pattern:

    value = req.get_param(name) or default_value
    
  • Friendly constants for status codes were added (e.g., falcon.HTTP_NO_CONTENT vs. falcon.HTTP_204.)

  • Several minor performance optimizations were made to the code base.

Fixed

  • The query string parser was modified to improve handling of percent-encoded data.
  • Several errors in the documentation were corrected.
  • The six package was pinned to 1.4.0 or better. six.PY2 is required by Falcon, but that wasn’t added to six until version 1.4.0.