35 次重大发布
0.47.0 | 2024 年 7 月 23 日 |
---|---|
0.45.0 | 2024 年 5 月 13 日 |
0.42.0 | 2024 年 3 月 18 日 |
0.35.2 | 2023 年 12 月 21 日 |
0.13.0 | 2023 年 3 月 27 日 |
151 在 网页编程
12,297 每月下载量
在 23 crates 中使用
290KB
6K SLoC
Shuttle - 使用单个 Cargo 子命令部署 Rust 应用程序
Shuttle 是一个原生 Rust 云开发平台,允许您免费部署您的 Rust 应用程序。
📖 查看我们的文档以快速入门: docs.shuttle.rs
🙋♂️ 如果您有任何问题,请加入我们的 Discord 服务器。
用法
首先通过在终端中运行以下命令来安装 cargo shuttle
子命令
cargo install cargo-shuttle
现在 Shuttle 已安装,您可以使用 Axum 模板初始化一个项目
cargo shuttle init --template axum my-axum-app
通过查看生成的 my-axum-app
项目的 Cargo.toml
文件,您会看到它已被配置为一个二进制 crate,其中包括 shuttle-runtime
和 shuttle-axum
等几个依赖项。
axum = "0.7.3"
shuttle-axum = "0.47.0"
shuttle-runtime = "0.47.0"
tokio = "1.28.2"
Axum 项目的模板代码也可以在 src/main.rs
中找到
use axum::{routing::get, Router};
async fn hello_world() -> &'static str {
"Hello, world!"
}
#[shuttle_runtime::main]
async fn main() -> shuttle_axum::ShuttleAxum {
let router = Router::new().route("/", get(hello_world));
Ok(router.into())
}
查看我们的 文档 以查看我们支持的所有框架,或查看我们的 示例(如果您更喜欢这种格式)。
本地运行
在部署之前,您可以在本地测试您的应用程序,使用
cargo shuttle run
您应该看到您的应用程序在默认端口 8000 上构建并启动。您可以使用以下方法进行测试;
curl https://127.0.0.1:8000/
# Hello, world!
部署
在您能够部署之前,您必须创建一个项目。这将在底层为您的项目启动一个部署容器,确保与其他用户的项目隔离。提示:如果您在 cargo shuttle init
流程中执行了此操作,则现在无需执行此操作。
cargo shuttle project start
然后,使用以下命令部署服务
cargo shuttle deploy
您的服务将立即在以下地址可用:https://{项目名称}.shuttleapp.rs/
。例如
curl https://my-axum-app.shuttleapp.rs/
# Hello, world!
依赖项
~13–27MB
~364K SLoC