couchdb v0.3.0 Release Notes

Release Date: 2015-12-12 // over 8 years ago
  • ๐Ÿš€ This release overhauls the crate's API to provide stronger type-safety and to be more Rust-idiomatic.

    ๐Ÿ’ฅ Breaking changes

    • There are new types for specifying databases, documents, and views.
      • All raw-string path parameters have been replaced with new path types: DatabasePath, DocumentPath, and ViewPath. The signatures of all client commands have changed, as well as the Document and ViewRow types.
      • There's a new DocumentId type that combines a document name with its type (i.e., normal document vs design document vs local document).
    • All client commands specific to design documents (e.g., get_design_document) have been removed. Design documents are now accessible via generic document commands (e.g., get_document).
    • The ViewResult struct now wraps its total_rows and offset fields in an Option.
    • The underlying type for ViewFunctionMap is now HashMap, not BTreeMap.
    • The Command trait is now private.
    • Crate dependencies now specify explicit version ranges instead of *.

    ๐Ÿ›  Fixes

    • All JSON-decoding errors are now reported as the Decode error variant. Previously, some decoding errors were reported as a hidden variant.
    • The Revision type now compares as case-insensitive, matching CouchDB semantics.
    • ๐Ÿ A bug has been fixed that caused CPU spin on Windows in the Server type.

    ๐Ÿ†• New

    • The Database type now includes all fields returned by the CouchDB server as a result of a client command to GET a database.
    • There's a new DesignBuilder type to make it easier to construct Design instances.
    • ๐Ÿ‘ฏ The Clone, Hash, Eq, PartialEq, Ord, and PartialOrd traits have been implemented for all types where appropriate.