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
ターゲットをインストールする必要があります。
$ 錆びターゲット追加 wasm32-wasi
まず、 spin new
コマンドを実行して、テンプレートから Spin アプリケーションを作成します。
# すべてのデフォルトを受け入れて、Rust http テンプレートに基づいて「hello-rust」という名前の新しい 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 コンポーネントのビルド コマンドが正常に実行されました。# アプリケーションをローカルで実行します。$ スピン アップ http://127.0.0.1:3000 を提供する「.spin/logs/」へのコンポーネントの標準出力のログ記録 利用可能なルート: hello-rust: http://127.0.0.1:3000 (ワイルドカード)
それでおしまい!アプリケーションが実行されたので、ブラウザまたは別のシェルの cURL を使用して試してみます。
# アプリケーションにリクエストを送信します。 $curl -i 127.0.0.1:3000 HTTP/1.1 200 OK フー:バー コンテンツの長さ: 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 | サポートされています | サポートされています | サポートされています | サポートされています | サポートされています |
レディス | サポートされています | サポートされています | サポートされています | サポートされています | サポートされていません |
API | |||||
アウトバウンドHTTP | サポートされています | サポートされています | サポートされています | サポートされています | サポートされています |
構成変数 | サポートされています | サポートされています | サポートされています | サポートされています | サポートされています |
キー値のストレージ | サポートされています | サポートされています | サポートされています | サポートされています | サポートされていません |
SQLiteストレージ | サポートされています | サポートされています | サポートされています | サポートされています | サポートされていません |
MySQL | サポートされています | サポートされています | サポートされていません | サポートされています | サポートされていません |
PostgreSQL | サポートされています | サポートされています | サポートされていません | サポートされています | サポートされています |
アウトバウンド Redis | サポートされています | サポートされています | サポートされています | サポートされています | サポートされています |
サーバーレスAI | サポートされています | サポートされています | サポートされています | サポートされています | サポートされていません |
拡張性 | |||||
カスタムトリガーの作成 | サポートされています | サポートされていません | サポートされていません | サポートされていません | サポートされていません |
Spin の改善に興味を持っていただけて大変嬉しく思います。ありがとう!
毎週月曜日の午前 2 時 30 分 (協定世界時) と午後 9 時 (協定世界時) に、Spin プロジェクト ミーティングで Spin の問題、ロードマップ、アイデアについて話し合います。会議の日程については、この Google カレンダーを購読してください。
Spin プロジェクト会議の議題は公開文書です。この文書には、各会議の日時、Zoom リンク、その日の議論のトピックを含むローリング議題が含まれています。各会議の議事録と録画へのリンクも表示されます。プロジェクト ミーティングでデモや議論したい内容がある場合は、それを議題に追加することをお勧めします。
貢献ガイドはここで見つけることができます。
Fermyon は Discord サーバーもホストしており、そこであらゆることについて議論します。 Spin: Discord サーバー。
Twitter でフォローしてください: @spinframework
Discord サーバーの Spin コミュニティに参加して、質問したり、助けを得たり、Spin で行っている素晴らしいことを披露したりすることができます。