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命令行工具

Apache-2.0 或 MIT

34KB
616

roche

用于在容器中快速开发 tide 的命令行工具。

简介

用 Rust 构建的服务具有一些出色的运行时特性,适用于无服务器应用程序

  • 资源占用低

  • 快速启动时间

  • 无垃圾回收

然而,这些特性是以构建时间不是最佳为代价的,不适合快速应用开发。

roche 通过为 tide 提供一个函数即服务模式来解决这一缺点,将构建时间缩短到几秒,并使开发者能够专注于业务逻辑,从而快速交付快速且节能的软件。

它利用了 tide 的嵌套功能,因此只需要开发处理器,而应用程序基础设施由预构建的 Docker 容器提供。

一旦下载了基础镜像,构建时间大约为 5 秒(调试模式)和 30 秒(发布模式)。

Roche 主要针对 knative 环境,但它也可以用于构建标准的 Docker 容器。

请参阅 架构 页面以获取详细信息。

先决条件

  1. 本地机器上的 DockerPodman 环境。

  2. 本地 Rust 安装。

安装

$ cargo install roche

用法

  1. 创建一个空文件夹并生成一个函数模板
$ 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
}

这就是你需要的一切!未来可能会通过自定义基础镜像添加对外部库的支持。

  1. 构建函数镜像。
$ docker login 
$ roche build
# optionally you can provide an image name
$ roche build -t registry/namespace/devimagename:version
  1. 如果你想要运行镜像,可以使用标准的 Docker 命令
docker run -p 8080:8080 registry/namespace/devimagename:version
  1. 对于发布构建,请运行以下命令 - 这些命令需要更长的时间,因为它们使用了 --release 标志进行编译
$ roche release registry/namespace/imagename:version
  1. 部署到你喜欢的基于容器的 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是一个 开源开源项目。这意味着

做出重大和有价值的贡献的个人将获得对项目的提交访问权限,以便根据他们的意愿做出贡献。这个项目更像是一个开放的维基百科,而不是一个标准的受保护的开源项目。

有关更多详细信息,请参阅贡献指南

归属

图标由Freepikwww.flaticon.com创建

项目生成功能依赖于出色的cargo生成器项目

灵感来自Appsody(已停用)

依赖关系

~54MB
~1M SLoC