Interesting projects using WebAssembly

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • tarmac

    Write as Functions, Deploy as a Monolith or Microservice with WebAssembly

  • Tarmac is a framework that facilitates the creation of WebAssembly applications. According to its official website, "Framework for writing functions, microservices or monoliths with Web Assembly. Tarmac is language-agnostic and offers built-in support for key/value stores like BoltDB, Redis, and Cassandra, traditional SQL databases like MySQL and Postgres, and core features like mTLS authentication and observability." It is a project worth analyzing as it can speed up the implementation of applications you can host in one of the products I mentioned above.

  • Kong is an API Gateway used by companies around the world. It has always relied on "plugins" and "filters" that allow users to create new functionalities and add them to routes and services. For users to make these extensions, it was necessary to use the Lua scripting language (NOTE: it is possible to create plugins in Go in versions below 3.4, but unlike Lua, when using Go, performance is lower because Kong executes the logic in a separate process). From version 3.4 onwards, the team added the option to use WebAssembly. In this post, you can learn more about the details and how to implement a simple filter using TinyGo. You can find a template and a filter example to implement rate limit in the project repository.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • proxy-wasm-go-rate-limiting

    Go implementation of a prototype rate-limiting filter using proxy-wasm

  • Kong is an API Gateway used by companies around the world. It has always relied on "plugins" and "filters" that allow users to create new functionalities and add them to routes and services. For users to make these extensions, it was necessary to use the Lua scripting language (NOTE: it is possible to create plugins in Go in versions below 3.4, but unlike Lua, when using Go, performance is lower because Kong executes the logic in a separate process). From version 3.4 onwards, the team added the option to use WebAssembly. In this post, you can learn more about the details and how to implement a simple filter using TinyGo. You can find a template and a filter example to implement rate limit in the project repository.

  • dapr

    Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

  • The following two examples are open-source projects maintained by Fermyon with contributions from companies like Microsoft and SUSE. The first is Spin, which allows us to use WebAssembly to create Serverless applications. The second, SpinKube, combines some of the topics I'm most excited about these days: WebAssembly and Kubernetes Operators :) The official website says, "By running applications in the Wasm abstraction layer, SpinKube offers developers a more powerful, efficient, and scalable way to optimize application delivery on Kubernetes." By the way, this post shows how to integrate SpinKube with Dapr, another technology I'm very interested in, and I should write some posts soon.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts