#shuttle #shuttle-service #deployment #cloud #run-time #platform #axum

shuttle-runtime

运行时库,用于启动和管理在 shuttle 上运行的服务

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网页编程

Download history 2548/week @ 2024-04-27 3044/week @ 2024-05-04 2477/week @ 2024-05-11 2037/week @ 2024-05-18 2349/week @ 2024-05-25 2371/week @ 2024-06-01 1729/week @ 2024-06-08 3025/week @ 2024-06-15 2235/week @ 2024-06-22 1450/week @ 2024-06-29 1361/week @ 2024-07-06 2579/week @ 2024-07-13 3682/week @ 2024-07-20 4496/week @ 2024-07-27 2033/week @ 2024-08-03 1835/week @ 2024-08-10

12,297 每月下载量
23 crates 中使用

Apache-2.0

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-runtimeshuttle-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