diesel

A safe, extensible ORM and Query Builder for Rust

APACHE-2.0 License

Downloads
52.2M
Stars
11.9K
Committers
390

Bot releases are hidden (Show)

diesel - v0.11.4

Published by sgrif over 7 years ago

This release addresses a memory safety issue in our interaction with libmysqlclient. There was an undocumented assumption made by that library which we were not taking into consideration, resulting in a use-after-free bug. This was resulting in a segmentation fault on some systems.

While this issue is quite serious, we are not issuing a CVE or a security advisory. The bug resulted in 4 bytes being written to a handful of values. It could not be exploited to cause a security issue.

diesel - v0.11.3

Published by sgrif over 7 years ago

No changes. @sgrif is bad at releasing things.

diesel - v0.11.2

Published by sgrif over 7 years ago

This release has no code changes other than bumping the allowed version
for pq-sys and mysqlclient-sys. The versions released alongside 0.11
attempted to generate the bindings at compile time. This required a
bleeding edge version of clang, and caused too many issues for too many
people. The latest versions of those two libraries include pre-generated
bindings.

If you need to use bindings generated by the old version, you can
explicitly depend on that version with cargo update --precise

diesel - v0.11.1

Published by sgrif over 7 years ago

This release is a minor bug fix release that handles two edge cases in 0.11's new behavior.

diesel - v0.11.0 (The one where we support MySQL)

Published by sgrif over 7 years ago

The headline features for this release are MySQL support and limited PG upsert support. MySQL support works exactly as you'd expect. Just add features = ["mysql"] to your Cargo.toml, pass a connection URL (where the scheme is mysql:// and the path is the name of the database) to MysqlConnection::establish and you're off. Keep in mind that if you're following the getting started guide, MySQL does not support the RETURNING clause, so methods like get_result and get_results won't work.

PostgreSQL upsert was a feature added in PG 9.5 and has been one of our most requested features. The full upsert API is quite complex, but we've added support for ON CONFLICT DO NOTHING, as this covered the highest percentage of use cases with the lowest amount of work. You can see examples in the docs. Support for the full upsert syntax will be coming in 0.12

In addition to the headline features, there were plenty of quality of life improvements and bug fixes. As always, you can see a full list of changes by reading the changelog.

In addition to the Diesel core team, 6 additional contributors worked on this release. A huge thank you to:

  • Brandon W Maister
  • Eijebong
  • Georg Semmler
  • Jimmy Cuadra
  • Jovansonlee Cesar
  • jacob

I'd also like to thank everybody who helped this release by opening issues, finding bugs, and asking/answering questions in our gitter room.

diesel - v0.10.1

Published by sgrif over 7 years ago

This is a minor bugfix release to address a bug in 0.10.0 involving infer_table_from_schema! specifying a table from a schema other than public. Two version bumps which were backwards compatible have also been included.

diesel - The one where we work on stable

Published by sgrif over 7 years ago

It's happening

v0.10.0 drops support for Rust 1.14 and earlier, and adds support for Rust 1.15 (ON STABLE). diesel_codegen_syntex has been removed, and is no longer supported.

Additionally, this release adds initial support for the JSON data type in PostgreSQL. There is also a new print-schema subcommand in Diesel CLI which will show you the code generated by infer_schema!(). As always, you can find a full list of what has changed in the changelog.

In addition to the Diesel core team, 7 contributors worked on this release. A huge thank you to

  • Adrian Perez de Castro
  • Eric Kidd
  • Georg Semmler
  • Jake Goulding
  • Sergio Benitez
  • Severen Redwood
  • Stu Black

I'd also like to thank everybody who helped this release by opening issues, finding bugs, and asking/answering questions in our gitter room.

There were several big features that I had hoped to get done in time for this release, but my daughter inherited my troll gene and decided to come early. If you were hoping for MySQL support, blame Ruby. In the mean time, here is a picture of Ruby.

baby ruby

diesel -

Published by sgrif almost 8 years ago

diesel - v0.9.0

Published by sgrif almost 8 years ago

0.9.0 is a fairly large release, bringing several important quality of life features. The main features of this release are:

  • Support for composite primary keys
  • Support for PG schemas other than public
  • Batch insert support for SQLite

This release also includes numerous bug fixes. In particular several bugs which occurred from using empty arrays have all been fixed. For full release notes, see the CHANGELOG

diesel - v0.8.0

Published by killercup about 8 years ago

This release is primarily focused around diesel_codegen, which has been entirely rewritten to use the new Macros 1.1 framework. This means that Diesel should continue to work on all future nightlies, and will be much
more compatible with other crates which use codegen such as serde. This did reqiure some breaking changes to their API, but it should be a straightforward migration. the CHANGELOG has migration instructions.

The macros 1.1 rewrite took the majority of our time, so this release is fairly light on features, but we do have a few great quality of life additions. See the CHANGELOG for details.

A huge thank you to all the contributors who worked on this release:

  • Cengiz Can
  • Christopher Brickley
  • David Szotten
  • Georg Semmler
  • Jimmy Cuadra
  • Josh Holmer
  • Rasmus Kaj
  • Robert Maloney
  • Sebastian Blei
diesel - v0.7.2

Published by sgrif about 8 years ago

This is an extremely minor update. It has no changes other than increasing the maximum allowed syntex version, and changing the nightly that we test against in .travis.yml

diesel - v0.7.1

Published by sgrif about 8 years ago

This is a bugfix release containing two major fixes. Most importantly, the Copy constraint has been removed from Identifiable::Id. This was an oversight which ended up making it impossible to use #[changeset_for] with string IDs. This fix does technically constitute a breaking change to public API, but I'm doing this in a patch release as it affects a recently introduced trait and I consider it more of a bugfix. We're still 0.x, so semver doesn't strictly hold yet. Additionally, the macro form of #[belongs_to] supported specifying custom foriegn keys, while the procedural form did not. This has been remedied.

diesel - v0.7.0

Published by killercup about 8 years ago

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 https://github.com/diesel-rs/diesel/commit/36b8801bf5e9594443743e6a7c62e29d3dce36b7 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.