Spin 是一个使用 WebAssembly 构建、部署和运行快速、安全且可组合的云微服务的框架。
Spin 是一个开源框架,用于使用 WebAssembly 构建和运行快速、安全且可组合的云微服务。它旨在成为开始使用 WebAssembly 微服务的最简单方法,并利用 WebAssembly 组件模型和 Wasmtime 运行时的最新发展。
Spin 提供了一个简单的 CLI,可帮助您创建、分发和执行应用程序,在接下来的部分中,我们将了解有关 Spin 应用程序以及如何开始的更多信息。
有关安装和配置 Spin 的详细指南,请参阅 Spin 文档的安装 Spin 页面,但简要运行以下命令:
卷曲-fsSL https://developer.fermyon.com/downloads/install.sh |巴什 sudo mv ./spin /usr/local/bin/spin
或者,您可以从源代码构建 Spin。
要开始编写应用程序,请遵循快速入门指南,然后遵循 Rust、JavaScript、Python 或 Go 语言指南以及编写 Spin 应用程序的指南。
下面是使用spin
CLI 创建新 Spin 应用程序的示例。 要运行该示例,您需要安装 Rust 的wasm32-wasi
目标。
$ rustup 目标添加 wasm32-wasi
首先,运行spin new
命令以从模板创建 Spin 应用程序。
# 基于 Rust http 模板创建一个名为“hello-rust”的新 Spin 应用程序,接受所有默认值$ spin new --accept-defaults -t http-rust hello-rust
运行spin new
命令会创建一个hello-rust
目录,其中包含应用程序所需的所有文件。切换到hello-rust
目录并使用spin build
构建应用程序,然后使用spin up
在本地运行它:
# 通过执行 `build` 命令编译为 Wasm。$ spin build 执行组件 hello-rust 的构建命令:cargo build --target wasm32-wasi --release 0.03秒内完成发布[优化]目标 已成功运行 Spin 组件的构建命令。# 在本地运行应用程序。$ spin up 将组件 stdio 记录到“.spin/logs/”服务 http://127.0.0.1:3000 可用路线: 你好-铁锈:http://127.0.0.1:3000(通配符)
就是这样!现在应用程序正在运行,请使用浏览器或另一个 shell 中的 cURL 来尝试一下:
# 向应用程序发送请求。$curl -i 127.0.0.1:3000 HTTP/1.1 200 好 富:酒吧 内容长度:14 日期: 2023 年 4 月 13 日星期四 17:47:24 GMT 你好,费米扬
您可以使用您喜欢的编辑器或 IDE 编辑hello-rust
目录中的src/lib.rs
文件,使应用程序执行更多操作。要了解有关编写 Spin 应用程序的更多信息,请参阅 Spin 文档中的编写应用程序。 要了解如何发布和分发应用程序,请参阅 Spin 文档中的发布和分发指南。
有关 cli 命令和子命令的更多信息,请参阅 CLI 参考。
下表总结了每种语言 SDK 的功能支持。
特征 | Rust SDK 支持吗? | TypeScript SDK 支持吗? | 支持Python SDK吗? | Tiny Go SDK 支持吗? | 支持 C# SDK 吗? |
---|---|---|---|---|---|
触发器 | |||||
HTTP协议 | 支持 | 支持 | 支持 | 支持 | 支持 |
雷迪斯 | 支持 | 支持 | 支持 | 支持 | 不支持 |
蜜蜂 | |||||
出站 HTTP | 支持 | 支持 | 支持 | 支持 | 支持 |
配置变量 | 支持 | 支持 | 支持 | 支持 | 支持 |
键值存储 | 支持 | 支持 | 支持 | 支持 | 不支持 |
SQLite存储 | 支持 | 支持 | 支持 | 支持 | 不支持 |
MySQL | 支持 | 支持 | 不支持 | 支持 | 不支持 |
PostgreSQL | 支持 | 支持 | 不支持 | 支持 | 支持 |
出站Redis | 支持 | 支持 | 支持 | 支持 | 支持 |
无服务器人工智能 | 支持 | 支持 | 支持 | 支持 | 不支持 |
可扩展性 | |||||
编写自定义触发器 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
我们很高兴您有兴趣让 Spin 变得更好!谢谢你!
每个星期一下午 2:30 UTC 和晚上 9:00 UTC(交替),我们都会在 Spin 项目会议上讨论 Spin 问题、路线图和想法。订阅此 Google 日历以了解会议日期。
Spin 项目会议议程是一份公开文件。该文档包含滚动议程,其中包含每次会议的日期和时间、Zoom 链接以及当天讨论的主题。您还可以找到每次会议的会议纪要以及录音的链接。如果您想在项目会议上演示或讨论某些内容,我们鼓励您将其添加到议程中。
您可以在这里找到贡献指南。
Fermyon 还托管一个 Discord 服务器,我们可以在其中讨论任何 Spin:Discord 服务器。
在 Twitter 上关注我们:@spinframework
您可以加入我们的 Discord 服务器中的 Spin 社区,在这里您可以提出问题、获得帮助并展示您使用 Spin 所做的很酷的事情!