Shuttle: v0.39.0 update
We're excited to release Shuttle v0.39.0! π
Multiple domains + performance improvements
Projects that have custom domains (and have upgraded their deployer to 0.39.0) can now also be reached at their usual *.shuttleapp.rs
domain. It is now also possible to add multiple custom domains to a project.
This change also comes with reduced CPU usage per request, so feel free to upgrade even if you are not using custom domains!
OpenDAL plugin
Thanks to @Xuanwoβs contribution, we now have shuttle-opendal. OpenDAL allows you to easily connect to many storage services with credentials that you provide as secrets, for example:
use opendal::Operator;
#[shuttle_runtime::main]
async fn main(
#[shuttle_opendal::Opendal(scheme = "s3")] storage: Operator,
) -> ... { ... }
Templates
Some templates in our examples repo have been added or updated:
- Actix Web + Clerk + React added by @sourabpramanik. A good starting point for a fullstack app with user authentication. He also wrote a two-part blog post showing usage of the template: https://www.shuttle.rs/blog/2024/02/13/clerk-in-rust
- Loco Hello World added by @kaplanelad
- Fullstack SaaS was updated with improved development tooling by @ccmvn
Other updates
- Rust 1.76 is now available by restarting your project.
- Deployment logs older than 1 month will regularly be getting cleaned up from now on.
- Removed our tracking of resources that we donβt need to track, such as static folder, turso, and custom.
Contributions
- @sourabpramanik added an example for using Clerk authentication with Actix web shuttle-hq/shuttle-examples#133
- @hamirmahal fixed some code formatting shuttle-hq/www#257
- @ccmvn upgraded dependencies and dev tooling for our SaaS template shuttle-hq/shuttle-examples#137
- @kaplanelad added a hello-world Loco template to our examples and init command shuttle-hq/shuttle-examples#139 #1620
- @biplab5464 refactored some error messages #1615
- @Xuanwo added shuttle-opendal #1617
Upgrading
Refer to the upgrading docs for how to upgrade your projects.
What's Changed
- fix(shuttle-qdrant): v0.38.0 by @jonaro00 in #1606
- fix: don't try to deserialize non-200 res to service summary by @oddgrd in #1607
- wip: use cargo-make for tasks and ci by @jonaro00 in #1595
- feat: disable trace_layer on_failure, only emit error event for 500s by @oddgrd in #1608
- refactor: uniform client wrappers by @chesedo in #1614
- ci: move more tasks to cargo make by @jonaro00 in #1613
- [Improvement]: Refactor ApiError and ErrorKind to use thiserror #1601 by @biplab5464 in #1615
- fix: alias database field names updated in 0.37.0 by @jonaro00 in #1618
- fix: remove obsolete resources by @jonaro00 in #1543
- feat(deployer, gateway): remove deployer proxy by @jonaro00 in #1612
- feat(logger): clean old logs on startup by @jonaro00 in #1619
- chore: bump git2 to resolve vulnerability by @oddgrd in #1621
- add loco to shuttle cli by @kaplanelad in #1620
- chore: Rust 1.76 by @jonaro00 in #1622
- feat(gateway): allow multiple hostnames, proxy caching by @jonaro00 in #1616
- feat: Add OpenDAL resource support by @Xuanwo in #1617
- chore: v0.39.0 by @jonaro00 in #1623
- fix: submodule by @jonaro00 in #1625
New Contributors
- @biplab5464 made their first contribution in #1615
- @kaplanelad made their first contribution in #1620
- @Xuanwo made their first contribution in #1617
Full Changelog: v0.38.0...v0.39.0