The headline feature of this version is associations. Just add #[belongs_to(User)]
above your struct, and it becomes incredibly easy to manipulate larger batches of data. See http://docs.diesel.rs/diesel/associations/index.html for a full guide.
Diesel is taking a slightly different approach to what you may have seen in the past, which I'm calling "non-invasive associations". In contrast to something like Active Record or Ecto, where the association lives on the parent, the data is completely independent. The type of a user and all its posts is (User, Vec<Post>)
.
This release also marks the elimination of Diesel's reliance on procedural macros. They're still available as an option, and their usage is recommended. However, a lot of people have had a desire to shy away from them. For all of our code generation that does not perform IO, there is now a completely stable non-procedural macro, which has been designed to work with the custom_derive crate. See the CHANGELOG for a full list.
diesel_codegen
has been split into two crates. This is a breaking change which will affect 100% of our users. Please see 36b8801 for more information on how to migrate.
This release has also had a contributor who has gone above and beyond to help out. I'd like to take this opportunity to announce the 4th addition to the Diesel core team, @killercup! Your contributions have been much appreciated, and your code review has been invaluable.
Thank you to everybody who contributed to this release.
- derekdreery
- kardeiz
- Michael Macias
- Mike Piccolo
- Pascal Hertleif
- Richard Dodd
- Tim Brooks
On to 0.8! With this release, we are approaching the benchmarks I had set for 1.0. We will still have at least 2 more releases before the 1.0 release, but it's quickly becoming the next target. We will be publishing a roadmap soon.