Spin est un framework permettant de créer, déployer et exécuter des microservices cloud rapides, sécurisés et composables avec WebAssembly.
Spin est un framework open source permettant de créer et d'exécuter des microservices cloud rapides, sécurisés et composables avec WebAssembly. Il vise à être le moyen le plus simple de démarrer avec les microservices WebAssembly et tire parti des derniers développements du modèle de composant WebAssembly et du runtime Wasmtime.
Spin propose une CLI simple qui vous aide à créer, distribuer et exécuter des applications. Dans les sections suivantes, nous en apprendrons davantage sur les applications Spin et comment démarrer.
Consultez la page Install Spin de la documentation Spin pour un guide détaillé sur l'installation et la configuration de Spin, mais en bref, exécutez les commandes suivantes :
curl -fsSL https://developer.fermyon.com/downloads/install.sh | frapper sudo mv ./spin /usr/local/bin/spin
Alternativement, vous pouvez créer Spin à partir des sources.
Pour commencer à écrire des applications, suivez le guide de démarrage rapide, puis suivez les guides de langage Rust, JavaScript, Python ou Go, ainsi que le guide d'écriture d'applications Spin.
Vous trouverez ci-dessous un exemple d'utilisation de la CLI spin
pour créer une nouvelle application Spin. Pour exécuter l'exemple, vous devrez installer la cible wasm32-wasi
pour Rust.
$ cible rustup ajouter wasm32-wasi
Tout d’abord, exécutez la commande spin new
pour créer une application Spin à partir d’un modèle.
# Créez une nouvelle application Spin nommée 'hello-rust' basée sur le modèle http Rust, acceptant toutes les valeurs par défaut$ spin new --accept-defaults -t http-rust hello-rust
L'exécution de la commande spin new
a créé un répertoire hello-rust
avec tous les fichiers nécessaires à votre application. Accédez au répertoire hello-rust
et construisez l'application avec spin build
, puis exécutez-la localement avec spin up
:
# Compilez sur Wasm en exécutant la commande `build`.$ spin build Exécution de la commande build pour le composant hello-rust : cargo build --target wasm32-wasi --release Sortie terminée [optimisée] cible(s) en 0,03 s Exécution réussie de la commande build pour les composants Spin.# Exécutez l'application localement.$ spin up Composant de journalisation stdio sur ".spin/logs/" Au service de http://127.0.0.1:3000 Itinéraires disponibles : bonjour-rust : http://127.0.0.1:3000 (caractère générique)
C'est ça! Maintenant que l'application est en cours d'exécution, utilisez votre navigateur ou cURL dans un autre shell pour l'essayer :
# Envoyez une requête à l'application.$ curl -i 127.0.0.1:3000 HTTP/1.1 200 OK foo : bar longueur du contenu : 14 date : jeu. 13 avril 2023 17:47:24 GMT Bonjour Fermyon
Vous pouvez faire en sorte que l'application fasse plus en éditant le fichier src/lib.rs
dans le répertoire hello-rust
à l'aide de votre éditeur ou IDE préféré. Pour en savoir plus sur l'écriture d'applications Spin, consultez Écriture d'applications dans la documentation Spin. Pour savoir comment publier et distribuer votre application, consultez le guide Publication et distribution dans la documentation Spin.
Pour plus d'informations sur les commandes et sous-commandes cli, consultez la référence CLI.
Le tableau ci-dessous résume la prise en charge des fonctionnalités dans chacun des SDK de langage.
Fonctionnalité | SDK Rust pris en charge ? | SDK TypeScript pris en charge ? | SDK Python pris en charge ? | Le SDK Tiny Go est pris en charge ? | SDK C# pris en charge ? |
---|---|---|---|---|---|
Déclencheurs | |||||
HTTP | Soutenu | Soutenu | Soutenu | Soutenu | Soutenu |
Rédis | Soutenu | Soutenu | Soutenu | Soutenu | Non pris en charge |
Apis | |||||
HTTP sortant | Soutenu | Soutenu | Soutenu | Soutenu | Soutenu |
Variables de configuration | Soutenu | Soutenu | Soutenu | Soutenu | Soutenu |
Stockage des valeurs clés | Soutenu | Soutenu | Soutenu | Soutenu | Non pris en charge |
Stockage SQLite | Soutenu | Soutenu | Soutenu | Soutenu | Non pris en charge |
MySQL | Soutenu | Soutenu | Non pris en charge | Soutenu | Non pris en charge |
PostgreSQL | Soutenu | Soutenu | Non pris en charge | Soutenu | Soutenu |
Redis sortant | Soutenu | Soutenu | Soutenu | Soutenu | Soutenu |
IA sans serveur | Soutenu | Soutenu | Soutenu | Soutenu | Non pris en charge |
Extensibilité | |||||
Création de déclencheurs personnalisés | Soutenu | Non pris en charge | Non pris en charge | Non pris en charge | Non pris en charge |
Nous sommes ravis que vous souhaitiez améliorer Spin ! Merci!
Chaque lundi à 14h30 UTC et 21h00 UTC (en alternance), nous nous réunissons pour discuter des problèmes de Spin, de la feuille de route et des idées lors de nos réunions Spin Project. Abonnez-vous à ce calendrier Google pour les dates de réunion.
L’ordre du jour de la réunion du Spin Project est un document public. Le document contient un ordre du jour glissant avec la date et l'heure de chaque réunion, le lien Zoom et les sujets de discussion de la journée. Vous trouverez également le compte rendu de chaque réunion ainsi que le lien vers l'enregistrement. Si vous avez quelque chose que vous aimeriez démontrer ou discuter lors de la réunion de projet, nous vous encourageons à l'ajouter à l'ordre du jour.
Vous pouvez trouver le guide de contribution ici.
Fermyon héberge également un serveur Discord, sur lequel on discute de tout Spin : serveur Discord.
Suivez-nous sur Twitter : @spinframework
Vous pouvez rejoindre la communauté Spin sur notre serveur Discord où vous pouvez poser des questions, obtenir de l'aide et montrer les choses intéressantes que vous faites avec Spin !