commit | 8b6b9a0aa4dbb6a2c389f6dd8f4aee5c742a848c | [log] [tgz] |
---|---|---|
author | Sean Griffin <sean@seantheprogrammer.com> | Tue Nov 28 16:26:30 2017 -0700 |
committer | Sean Griffin <sean@seantheprogrammer.com> | Tue Nov 28 16:59:47 2017 -0700 |
tree | d1eedc877b33909e2dd4daa8b95f1346e0a5978e | |
parent | 91958113c269322aade643b6fd7ec77af76b198f [diff] |
Release v0.99.0 (It's basically 1.0 except it's not) This release is by far the largest Diesel has ever had. It serves 2 purposes. You can consider this release to be a beta for 1.0. However, 1.0 will have an important significant difference. Anything that is deprecated as of this release will not be present in the 1.0 release. This includes functions which were newly deprecated in 0.99. We know this may introduce a migration burden for some people, so we will continue to support the 0.99 line with bug fixes as long as there is demand and it is reasonable to do so. Headline Features ---- This release is mainly focused on ergonomics. Our main new feature is the [`sql_query`][] function. This is a new API which behaves similarly to [`sql`][], but it is entirely focused on cases where you want to write the *entire* query yourself. The main difference from `sql` is that you do not need to specify the return type of the query, and values are fetched by name rather than by index. This feature is still early, and there's a lot of features still to come (specifically evolving `#[derive(QueryableByName)]`, but we think this feature will ease a lot of pains for cases where Diesel doesn't quite do what you need. [`sql_query`]: http://docs.diesel.rs/diesel/fn.sql_query.html [`sql`]: http://docs.diesel.rs/diesel/sql/fn.sql.html Additionally, you can now use tuples for inserts the same as you can for updates. If you've ever wanted to insert a row with just 1 or 2 values, and been annoyed that you needed a struct that you're only using in this one place, this feature will make you happy. We'll have new guides highlighting this feature soon. Additionally, this release comes with a ton of quality of life features. Many of these changes are focused around making it easier to introduce line breaks naturally in your code. For example, `.filter` is now implemented on `UpdateStatement`, meaning you can write `update(foo).filter(bar)` instead of `update(foo.filter(bar))`. We've also introduced new APIs for `insert` and PG upsert which will have similar readability improvements. Breaking Changes ---- This release includes more deprecations than any release prior. In particular, `insert` has been deprecated, along with our entire PG upsert API. All deprecations in this release have direct replacements, which will lead to code which formats much more nicely. It should be a mostly mechanical replacement for most apps. See [the CHANGELOG file][] for details. [the CHANGELOG file]: https://github.com/diesel-rs/diesel/blob/v0.99.0/CHANGELOG.md Growing the Team ---- With this release, we'd like to welcome several new members to the Diesel committer team. @weiznich, @notryanb, and @katrinabrock you've all done excellent work and we're very excited to officially welcome you to the team! Additional Thanks ---- In addition to the Diesel core and committer teams, 10 people contributed to this release. A huge thank you to: - Adam Perry - Alex Kitchens - Alexey Zabelin - Arnar Mar Sig - Bob - Jordan - Lauri Apple - Maxime “pep” Buquet - William Murphy - bippityboppity Our only remaining blockers from this release and 1.0 are documentation changes, and having this tested in the wild. Thank you to every one of our users for your support, and we look forward to Diesel 1.0 by the end of the year!
API Documentation: latest release – master branch
Diesel gets rid of the boilerplate for database interaction and eliminates runtime errors without sacrificing performance. It takes full advantage of Rust's type system to create a low overhead query builder that “feels like Rust.”
Find our extensive Getting Started tutorial at https://diesel.rs/guides/getting-started. Guides on more specific features are coming soon.
Anyone who interacts with Diesel in any space, including but not limited to this GitHub repository, must follow our code of conduct.
Licensed under either of these:
Unless you explicitly state otherwise, any contribution you intentionally submit for inclusion in the work, as defined in the Apache-2.0 license, shall be dual-licensed as above, without any additional terms or conditions.