Spin é uma estrutura para construir, implantar e executar microsserviços em nuvem rápidos, seguros e combináveis com WebAssembly.
Spin é uma estrutura de código aberto para construir e executar microsserviços em nuvem rápidos, seguros e combináveis com WebAssembly. Seu objetivo é ser a maneira mais fácil de começar a usar microsserviços WebAssembly e aproveitar as vantagens dos desenvolvimentos mais recentes no modelo de componente WebAssembly e no tempo de execução Wasmtime.
Spin oferece uma CLI simples que ajuda você a criar, distribuir e executar aplicativos, e nas próximas seções aprenderemos mais sobre aplicativos Spin e como começar.
Consulte a página Instalar Spin da documentação do Spin para obter um guia detalhado sobre como instalar e configurar o Spin, mas, resumidamente, execute os seguintes comandos:
curl -fsSL https://developer.fermyon.com/downloads/install.sh | festa sudo mv ./spin /usr/local/bin/spin
Alternativamente, você pode construir o Spin a partir do código-fonte.
Para começar a escrever aplicativos, siga o guia de início rápido e, em seguida, siga os guias de linguagem Rust, JavaScript, Python ou Go e o guia sobre como escrever aplicativos Spin.
Abaixo está um exemplo de uso do spin
CLI para criar um novo aplicativo Spin. Para executar o exemplo, você precisará instalar o destino wasm32-wasi
para Rust.
$ alvo de ferrugem adicionar wasm32-wasi
Primeiro, execute o comando spin new
para criar um aplicativo Spin a partir de um modelo.
# Crie um novo aplicativo Spin chamado 'hello-rust' baseado no modelo Rust http, aceitando todos os padrões$ spin new --accept-defaults -t http-rust hello-rust
A execução do comando spin new
criou um diretório hello-rust
com todos os arquivos necessários para seu aplicativo. Mude para o diretório hello-rust
e construa o aplicativo com spin build
, depois execute-o localmente com spin up
:
# Compile para Wasm executando o comando `build`.$ spin build Executando o comando build para o componente hello-rust: cargo build --target wasm32-wasi --release Alvo(s) de lançamento finalizado [otimizado] em 0,03s Executou com sucesso o comando de construção para os componentes Spin.# Execute o aplicativo localmente.$ spin up Registrando o componente stdio em ".spin/logs/"Servindo http://127.0.0.1:3000 Rotas disponíveis: olá-ferrugem: http://127.0.0.1:3000 (curinga)
É isso! Agora que o aplicativo está em execução, use seu navegador ou cURL em outro shell para testá-lo:
# Envie uma solicitação para a aplicação.$ curl -i 127.0.0.1:3000 HTTP/1.1 200 OK foo: barra comprimento do conteúdo: 14 data: quinta-feira, 13 de abril de 2023 17:47:24 GMT Olá, Fermyon
Você pode fazer o aplicativo fazer mais editando o arquivo src/lib.rs
no diretório hello-rust
usando seu editor ou IDE favorito. Para saber mais sobre como escrever aplicativos Spin, consulte Escrevendo aplicativos na documentação do Spin. Para saber como publicar e distribuir seu aplicativo, consulte o guia Publicação e Distribuição na documentação do Spin.
Para obter mais informações sobre os comandos e subcomandos cli, consulte a Referência CLI.
A tabela abaixo resume o suporte a recursos em cada um dos SDKs de linguagem.
Recurso | Rust SDK é compatível? | SDK TypeScript compatível? | SDK Python é compatível? | SDK Tiny Go é compatível? | SDK C# com suporte? |
---|---|---|---|---|---|
Gatilhos | |||||
HTTP | Suportado | Suportado | Suportado | Suportado | Suportado |
Redis | Suportado | Suportado | Suportado | Suportado | Não compatível |
APIs | |||||
HTTP de saída | Suportado | Suportado | Suportado | Suportado | Suportado |
Variáveis de configuração | Suportado | Suportado | Suportado | Suportado | Suportado |
Armazenamento de valores-chave | Suportado | Suportado | Suportado | Suportado | Não compatível |
Armazenamento SQLite | Suportado | Suportado | Suportado | Suportado | Não compatível |
MySQL | Suportado | Suportado | Não compatível | Suportado | Não compatível |
PostgreSQL | Suportado | Suportado | Não compatível | Suportado | Suportado |
Redis de saída | Suportado | Suportado | Suportado | Suportado | Suportado |
IA sem servidor | Suportado | Suportado | Suportado | Suportado | Não compatível |
Extensibilidade | |||||
Criação de gatilhos personalizados | Suportado | Não compatível | Não compatível | Não compatível | Não compatível |
Estamos muito satisfeitos por você estar interessado em tornar o Spin melhor! Obrigado!
Todas as segundas-feiras às 14h30 UTC e às 21h UTC (alternando), nos reunimos para discutir questões, roteiro e ideias do Spin em nossas reuniões do projeto Spin. Assine este Google Agenda para datas de reuniões.
A agenda da Reunião do Projeto Spin é um documento público. O documento contém uma agenda contínua com data e horário de cada reunião, link do Zoom e temas de discussão do dia. Você também encontrará as atas de cada reunião e o link para a gravação. Se você tiver algo que gostaria de demonstrar ou discutir na reunião do projeto, encorajamos você a adicioná-lo à agenda.
Você pode encontrar o guia de contribuição aqui.
Fermyon também hospeda um servidor Discord, onde discutimos qualquer coisa sobre Spin: servidor Discord.
Siga-nos no Twitter: @spinframework
Você pode ingressar na comunidade Spin em nosso servidor Discord, onde pode fazer perguntas, obter ajuda e mostrar as coisas legais que você está fazendo com o Spin!