github shuttle-hq/shuttle v0.4.0

latest releases: v0.49.0, v0.48.3, v0.48.2...
2 years ago

Features

  • Services can opt into an AWS RDS Postgres, MySql or MariaDB instance rather than the previously shared Postgres instance (#180)

Improvements

  • No longer need to put cdylib in Cargo.toml (#212)
  • cargo shuttle command can now be run in child directories of a project (#203 Thanks @ivancernja)
  • Invalid API keys for cargo shuttle now have a better message for fixing the problem (#217 Thanks @Xavientois)
  • Improved error when failing to parse shuttle_service version (#219 Thanks @jmwill86)
  • Improved local dev experience and building (#226 #234 #244)
  • A rewrite of shuttle_service::Service to make it easier for users to implement custom services (#225)
  • cargo shuttle now fails with exit code 1 to improve its use in scripting (#166)
  • Improved docs (#243 #245 Thanks @lilianmoraru and @Xavientois)
  • Started switching to CircleCI

Breaking changes

Any service that used the (shared Postgres) PgPool would have had the following main function:

async fn rocket(pool: PgPool) -> shuttle_service::ShuttleRocket {
    // Create service here
}

And a sqlx-postgres feature for shuttle-service. With the support of more databases, this PgPool now needs to explicitly define what kind of database instance it will connect to using argument attributes. This can be done by adding #[shared::Postgres] to the attribute:

async fn rocket(#[shared::Postgres] pool: PgPool) -> shuttle_service::ShuttleRocket {
    // Create service here
}

Don't miss a new shuttle release

NewReleases is sending notifications on new releases.