Releases: shuttle-hq/shuttle
v0.4.2
Features 🚀
- [#284][@nahuakang] Readme for
cargo-shuttle
that will appear on crates.io - [#299][@coszio] Support underscore in project names
- [#293 & #302][@Butch78 & @oddgrd] Profanity and preserved word filter for project names
Bugs 🐞
- [#296][@coszio] Documentation updates for url-shortener
- [#304] Removed extra braces in
cargo shuttle init --axum
Thanks to all the contributors for the new features and bug fixes 🤛
v0.4.1
Features
- Poem support - #275 (Thanks @oddgrd)
cargo shuttle init --axum|rocket|tide|tower|poem
- #238 #275(Thanks @nahuakang and @oddgrd)
Improvements
structopt
toclap
migration - #256 #257 (Thanks @Xavientois)- Some doc fixups - #268 (Thanks @SonicZentropy)
v0.4.0
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
inCargo.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
}
v0.3.3
v0.3.2
Some features of this release:
- Running shuttle locally using
cargo shuttle run
- Websocket support
- Testing projects locally before deploying them
- Stability improvements
v0.3.1
v0.3.0
Exciting times for shuttle - v0.3.0 is out! 🚀
Here's what to look out for in this update.
How to update
-
👨💻 Just run
cargo install cargo-shuttle
to install the latest version of the CLI. -
⚠️ This release comes with an update to theshuttle-service
crate. This means you'' have to update yourshuttle-service
dependency to0.3
and runcargo shuttle deploy
.
What's New
Major Changes
- 📖 The much requested
cargo shuttle logs
so you can now get your deployment logs! - 🔒 A brand new secrets store (docs coming soon 😅)
- 🌊 Support for Tide (example)
- 🏰 Support for Tower (example)
Minor Improvements
- A
--name
and--working-directory
argument for cargo shuttle so that you don't need to be cd'd into your project's directory to use it! - Type aliases to make our lives a little easier:
-async fn rocket() -> Result<Rocket<Build>, shuttle_service::Error> {
+async fn rocket() -> shuttle_service::ShuttleRocket {
Thanks
Thanks to the contributors @alsuren, @bmoxb, @chesedo, @marioidival for making this release possible!
v0.2.5
Hello beautiful people! We've just released v0.2.5 🥳
Here's a quick note to tell you what changed and what matters to you.
How to update
-
👨💻 Just run
cargo install cargo-shuttle
to install the latest version of the CLI. -
🔑 You may also have to run
cargo shuttle login
and obtain an API key again by clicking on "Log In" on shuttle.rs. -
⚠️ This release comes with an update to theshuttle-service
crate. This means you may need to runcargo shuttle deploy
on some of your v0.2.4 projects.
What's new
Major things
Two major new PRs have been merged:
- 🦀 Support for the
axum
web framework (example) - 👌 A new and more clever way to declare your services - based on a proc-macro in the style of
tokio::main
(example)
Minor improvements
- We now set the
Server: shuttle.rs
http header server-side on app responses - Optimized the deployment job queue with async goodness
- Fixed a bug which prevented certain users from retrieving their existing API key
- The DB uri is now showing in the output of
cargo shuttle deploy
when the service requests a database - Code health, first pass
- More examples
Thanks
Many thanks to @finnbear for the awesome suggestion that led to #[shuttle_service::main]
! And thanks to @thecotne, @chesedo, @WiredSound, @christoshadjiaslanis, @alsuren, @mikeando for great commits and ideas!