Spin ist ein Framework zum Erstellen, Bereitstellen und Ausführen schneller, sicherer und zusammensetzbarer Cloud-Microservices mit WebAssembly.
Spin ist ein Open-Source-Framework zum Erstellen und Ausführen schneller, sicherer und zusammensetzbarer Cloud-Microservices mit WebAssembly. Es soll der einfachste Weg sein, mit WebAssembly-Microservices zu beginnen, und nutzt die neuesten Entwicklungen im WebAssembly-Komponentenmodell und der Wasmtime-Laufzeit.
Spin bietet eine einfache CLI, die Sie beim Erstellen, Verteilen und Ausführen von Anwendungen unterstützt. In den nächsten Abschnitten erfahren Sie mehr über Spin-Anwendungen und die ersten Schritte.
Eine ausführliche Anleitung zur Installation und Konfiguration von Spin finden Sie auf der Seite „Install Spin“ der Spin-Dokumentation. Führen Sie jedoch kurz die folgenden Befehle aus:
curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash sudo mv ./spin /usr/local/bin/spin
Alternativ können Sie Spin aus dem Quellcode erstellen.
Um mit dem Schreiben von Apps zu beginnen, befolgen Sie die Schnellstartanleitung und folgen Sie dann den Sprachhandbüchern für Rust, JavaScript, Python oder Go sowie der Anleitung zum Schreiben von Spin-Anwendungen.
Unten finden Sie ein Beispiel für die Verwendung der spin
CLI zum Erstellen einer neuen Spin-Anwendung. Um das Beispiel auszuführen, müssen Sie das Ziel wasm32-wasi
für Rust installieren.
$ rustup target wasm32-wasi hinzufügen
Führen Sie zunächst den Befehl spin new
aus, um eine Spin-Anwendung aus einer Vorlage zu erstellen.
# Erstellen Sie eine neue Spin-Anwendung mit dem Namen „hello-rust“ basierend auf der Rust-HTTP-Vorlage und akzeptieren Sie alle Standardeinstellungen$ spin new --accept-defaults -t http-rust hello-rust
Durch Ausführen des Befehls spin new
wurde ein hello-rust
-Verzeichnis mit allen erforderlichen Dateien für Ihre Anwendung erstellt. Wechseln Sie in das Verzeichnis hello-rust
, erstellen Sie die Anwendung mit spin build
und führen Sie sie dann lokal mit spin up
aus:
# Kompilieren Sie zu Wasm, indem Sie den Befehl „build“ ausführen. $ spin build Ausführen des Build-Befehls für die Komponente hello-rust: cargo build --target wasm32-wasi --release [Optimierte] Ziel(e) wurden in 0,03 Sekunden veröffentlicht Der Build-Befehl für die Spin-Komponenten wurde erfolgreich ausgeführt.# Führen Sie die Anwendung lokal aus.$ Spin-up Protokollierungskomponente stdio an „.spin/logs/“ unter Bereitstellung von http://127.0.0.1:3000 Verfügbare Routen: hallo-rust: http://127.0.0.1:3000 (Platzhalter)
Das ist es! Nachdem die Anwendung nun ausgeführt wird, können Sie sie mit Ihrem Browser oder cURL in einer anderen Shell ausprobieren:
# Senden Sie eine Anfrage an die Anwendung.$ curl -i 127.0.0.1:3000 HTTP/1.1 200 OK foo: bar Inhaltslänge: 14 Datum: Do, 13. April 2023 17:47:24 GMT Hallo, Fermyon
Sie können die App noch leistungsfähiger machen, indem Sie die Datei src/lib.rs
im Verzeichnis hello-rust
mit Ihrem bevorzugten Editor oder Ihrer bevorzugten IDE bearbeiten. Weitere Informationen zum Schreiben von Spin-Anwendungen finden Sie unter „Anwendungen schreiben“ in der Spin-Dokumentation. Informationen zum Veröffentlichen und Verteilen Ihrer Anwendung finden Sie im Leitfaden zum Veröffentlichen und Verteilen in der Spin-Dokumentation.
Weitere Informationen zu den CLI-Befehlen und Unterbefehlen finden Sie in der CLI-Referenz.
Die folgende Tabelle fasst die Funktionsunterstützung in den einzelnen Sprach-SDKs zusammen.
Besonderheit | Rust SDK unterstützt? | TypeScript SDK unterstützt? | Python SDK unterstützt? | Wird das Tiny Go SDK unterstützt? | C# SDK unterstützt? |
---|---|---|---|---|---|
Auslöser | |||||
HTTP | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Unterstützt |
Redis | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Nicht unterstützt |
APIs | |||||
Ausgehendes HTTP | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Unterstützt |
Konfigurationsvariablen | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Unterstützt |
Schlüsselwertspeicher | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Nicht unterstützt |
SQLite-Speicher | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Nicht unterstützt |
MySQL | Unterstützt | Unterstützt | Nicht unterstützt | Unterstützt | Nicht unterstützt |
PostgreSQL | Unterstützt | Unterstützt | Nicht unterstützt | Unterstützt | Unterstützt |
Ausgehende Redis | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Unterstützt |
Serverlose KI | Unterstützt | Unterstützt | Unterstützt | Unterstützt | Nicht unterstützt |
Erweiterbarkeit | |||||
Erstellen benutzerdefinierter Trigger | Unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt |
Wir freuen uns, dass Sie daran interessiert sind, Spin besser zu machen! Danke schön!
Jeden Montag um 14:30 Uhr UTC und 21:00 Uhr UTC (abwechselnd) treffen wir uns, um Spin-Probleme, Roadmap und Ideen in unseren Spin-Projekttreffen zu besprechen. Abonnieren Sie diesen Google Kalender für Besprechungstermine.
Die Tagesordnung des Spin Project Meetings ist ein öffentliches Dokument. Das Dokument enthält eine fortlaufende Tagesordnung mit Datum und Uhrzeit jeder Sitzung, den Zoom-Link und Diskussionsthemen für den Tag. Außerdem finden Sie zu jeder Sitzung das Sitzungsprotokoll und den Link zur Aufzeichnung. Wenn Sie etwas haben, das Sie bei der Projektbesprechung vorführen oder besprechen möchten, empfehlen wir Ihnen, es auf die Tagesordnung zu setzen.
Den beitragenden Leitfaden finden Sie hier.
Fermyon hostet auch einen Discord-Server, auf dem wir alles besprechen. Spin: Discord-Server.
Folgen Sie uns auf Twitter: @spinframework
Sie können der Spin-Community auf unserem Discord-Server beitreten, wo Sie Fragen stellen, Hilfe erhalten und die coolen Dinge präsentieren können, die Sie mit Spin machen!