WAGI est le moyen le plus simple de commencer à écrire des microservices WebAssembly et des applications Web.
AVERTISSEMENT: Il s'agit d'un code expérimental. Il n'est pas considéré comme de la production par ses développeurs, ce n'est pas non plus un logiciel "pris en charge".
Deislabs expérimente de nombreuses technologies de WASM en ce moment. Il s'agit d'une multitude de projets (y compris Krustlet) conçus pour tester les limites de WebAssembly en tant que runtime basé sur le cloud.
WAGI vous permet d'exécuter des binaires wasi WebAssembly en tant que gestionnaires HTTP. Écrivez une application "Ligne de commande" qui imprime quelques en-têtes et compilez-la à WASM32-WASI . Ajoutez une entrée aux modules.toml . C'est ça.
Vous pouvez utiliser n'importe quel langage de programmation qui peut compiler à WASM32-WASI .
Voici le moyen le plus rapide d'essayer Wagi. Pour plus de détails, consultez la documentation.
tar -zxf wagi-VERSION-OS.tar.gzwagi --help Si vous souhaitez essayer quelques configurations simples, nous recommandons de cloner ce référentiel, puis d'utiliser le répertoire examples :
$ wagi -c examples/modules.toml
No log_dir specified, using temporary directory /var/folders/hk/l1mlxz1x01x9yl33ll9vh9980000gp/T/.tmpx55XkJ for logs Cela commencera WAGI sur http://localhost:3000 . Utilisez un navigateur ou un outil comme curl pour tester:
$ curl -v http://localhost:3000/hello/world
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /hello/world HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK
< content-type: text/html; charset=UTF-8
< content-length: 12
< date: Wed, 14 Oct 2020 22:00:59 GMT
<
hello world
* Connection #0 to host localhost left intact
* Closing connection 0
Pour ajouter vos propres modules, compilez votre code au format wasm32-wasi et ajoutez-les au fichier modules.toml . Découvrez notre projet Yo-Wasm pour un moyen rapide de construire des modules WasM dans une variété de langues.
WAGI est une implémentation de CGI pour WebAssembly. Cela signifie que l'écriture d'un module WAGI est aussi simple que d'envoyer un contenu formaté correctement à la sortie standard. Si vous souhaitez comprendre les détails, lisez la spécification de l'interface de passerelle commune 1.1.
Jetez un œil au référentiel d'exemples WAGI pour des exemples dans diverses langues.
Pour un module "Grade de production" (quoi que cela signifie pour un projet de pré-libération), consultez le WAGI FileServer: un fichier de fichiers écrit en grain, compilé à WASM et prêt à s'exécuter à WAGI.
Vous voulez discuter? Nous traînons dans la chaîne #Krustlet du Slack de Kubernetes.
WAGI est expérimental et nous accueillons des contributions pour améliorer le projet. En fait, nous sommes ravis que vous lisiez même cette section des documents!
Pour les correctifs de bogues:
Pour les refacteurs et les tests:
Pour les fonctionnalités:
Comme il s'agit d'un référentiel expérimental, nous pourrions être un peu lents à répondre.
Ce projet a adopté le code de conduite open source Microsoft.
Pour plus d'informations, consultez le code de conduite FAQ ou contactez [email protected] avec toute question ou commentaire supplémentaire.