6 个版本
0.3.3 | 2021 年 2 月 2 日 |
---|---|
0.3.2 | 2021 年 2 月 2 日 |
0.3.1 | 2021 年 1 月 4 日 |
0.2.0 | 2021 年 1 月 1 日 |
0.1.0 | 2020 年 12 月 30 日 |
#2731 在 命令行工具 中
34KB
616 行
roche
用于在容器中快速开发 tide 的命令行工具。
简介
用 Rust 构建的服务具有一些出色的运行时特性,适用于无服务器应用程序
-
资源占用低
-
快速启动时间
-
无垃圾回收
然而,这些特性是以构建时间不是最佳为代价的,不适合快速应用开发。
roche 通过为 tide 提供一个函数即服务模式来解决这一缺点,将构建时间缩短到几秒,并使开发者能够专注于业务逻辑,从而快速交付快速且节能的软件。
它利用了 tide 的嵌套功能,因此只需要开发处理器,而应用程序基础设施由预构建的 Docker 容器提供。
一旦下载了基础镜像,构建时间大约为 5 秒(调试模式)和 30 秒(发布模式)。
Roche 主要针对 knative 环境,但它也可以用于构建标准的 Docker 容器。
请参阅 架构 页面以获取详细信息。
先决条件
安装
$ cargo install roche
用法
- 创建一个空文件夹并生成一个函数模板
$ mkdir tide-faas
$ cd tide-faas
$ roche init
这会创建一个单个的函数文件,你可以添加功能。
pub fn handler() -> tide::Server<()> {
let mut api = tide::new();
api.at("/").get(|_| async { Ok("Hello, World!") });
api
}
这就是你需要的一切!未来可能会通过自定义基础镜像添加对外部库的支持。
- 构建函数镜像。
$ docker login
$ roche build
# optionally you can provide an image name
$ roche build -t registry/namespace/devimagename:version
- 如果你想要运行镜像,可以使用标准的 Docker 命令
docker run -p 8080:8080 registry/namespace/devimagename:version
- 对于发布构建,请运行以下命令 - 这些命令需要更长的时间,因为它们使用了 --release 标志进行编译
$ roche release registry/namespace/imagename:version
- 部署到你喜欢的基于容器的 FaaS 平台。
$ docker push registry/namespace/imagename:version
# knative
$ kn service create roche-function --image registry/namespace/imagename:version
# ibmcloud
$ ibmcloud ce app create -n roche-function --image registry/namespace/imagename:version
注意
如果您想将构建过程作为CI/CD链的一部分运行,则以下命令将生成一个 Dockerfile
,并将其与function.rs放在同一文件夹中。
$ roche gen
贡献
roche是一个 开源开源项目。这意味着
做出重大和有价值的贡献的个人将获得对项目的提交访问权限,以便根据他们的意愿做出贡献。这个项目更像是一个开放的维基百科,而不是一个标准的受保护的开源项目。
有关更多详细信息,请参阅贡献指南。
归属
图标由Freepik在www.flaticon.com创建
项目生成功能依赖于出色的cargo生成器项目
灵感来自Appsody(已停用)
依赖关系
~54MB
~1M SLoC