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。 執行元件 hello-rust 的建構指令:cargo build --target wasm32-wasi --release 0.03秒內完成發布[優化]目標 已成功運行 Spin 元件的建置命令。 將元件 stdio 記錄到「.spin/logs/」服務 http://127.0.0.1:3000 可用路線: 你好-鐵鏽:http://127.0.0.1:3000(通配符)
就是這樣!現在應用程式正在運行,請使用瀏覽器或另一個 shell 中的 cURL 來嘗試:
# 向應用程式發送請求。 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 所做的很酷的事情!