Fermyon recently announced Spin 1.0, an open-source developer tool and framework for developing serverless applications with WebAssembly (Wasm).
Spin 1.0 is the first stable release after its introduction last year. In the 1.0 release, the company added support for new programming languages (such as JavaScript, TypeScript, Python, or C#, in addition to Rust and Go), connecting to databases (relational or Redis), distributing applications using popular registry services (GitHub Container Registry, Docker Hub, or, AWS ECR), a built-in key/value store for persisting state, running applications on Kubernetes, or integrating with HashiCorp Vault for managing runtime configuration.
With Spin, the company provides an easy developer experience for creating applications running with Wasm, including a framework for deploying and running them fast and securely.
Radu Matei, CTO of Fermyon, explains in a blog post:
Spin is an open-source developer tool and framework that helps the user through creating, building, distributing, and running serverless applications with Wasm. We can use spin new to create a new application based on starter templates, spin build to compile our application to Wasm and spin up to run the application locally.
Source: https://www.fermyon.com/
Besides running the spin application locally, developers can deploy the application to Fermyon Cloud (launched in open beta last year). After signing in to the Fermyon Cloud, they can deploy their application by running the following command in the directory where their application’s spin.toml file is located:
$ spin deploy
In addition, developers could also choose to push the applications to a container registry.
One of the key takeaways from an InfoQ podcast with Matt Butcher was:
Spin, an open-source developer tool from Fermyon focused on the inner loop (the fast iterative local development cycle), allows you to quickly build web assembly-based applications without having to worry about deployment. Spin has a Visual Studio Code plugin and functions similar to serverless event listener models like AWS Lambda.
The company plans to use WASI Preview 2 and the Wasm component model in the near future. In addition, in a Reddit thread, Matei responded to a question regarding web support with more details on future developments:
In the future, we want to allow calling Wasm components from Spin, which could be used in the browser or outside the browser, but the functionality of Spin is intended for non-browser scenarios.
Fermyon is one of many companies investing in WASM technology. For instance, Docker recently announced the first Technical Preview of Docker+Wasm, a unique build that makes it possible to run Wasm containers with Docker using the WasmEdge runtime. From version 4.15, everyone can try out the features by activating the containerd image store experimental feature.
Furthermore, a runwasi project is part of the CNCF's containerd ecosystem, allowing developers to run a WebAssembly runtime via containerd shim inside of Kubernetes.
Lastly, more details on Spin are available on the documentation pages.