Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Write as Functions, Deploy as a Monolith or Microservice with WebAssembly
| Date | Stars |
|---|---|
| 2026-07-24 | 346 |
| 2026-07-25 | 346 |
| 2026-07-28 | 346 |
| 2026-07-30 | 346 |
| 2026-08-06 | 346 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Tarmac

[](https://pkg.go.dev/github.com/tarmac-project/tarmac/pkg/sdk)
[](https://tarmac.gitbook.io/tarmac/)
[](https://github.com/tarmac-project/tarmac/actions/workflows/build.yml)
[](https://goreportcard.com/report/github.com/tarmac-project/tarmac)
[](https://codecov.io/gh/tarmac-project/tarmac)
## Framework for writing functions, microservices, or monoliths with Web Assembly
Tarmac is a new approach to application frameworks. 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 fundamental capabilities like mutual TLS authentication and observability.
Supporting languages like Go, Rust, & Zig, you can focus on writing your functions in whatever language you like while benefiting from a robust suite of capabilities for building modern distributed services.
## Quick Start
Tarmac makes it easy to get started with building complex functions. The below function (written in Go) is an excellent example of its simplicity.
```go
// Tac is a small, simple Go program that is an example WASM module for Tarmac. This program will accept a Tarmac
// server request, log it, and echo back the payload in reverse.
package main
import (
"fmt"
"github.com/tarmac-project/tarmac/pkg/sdk"
)
var tarmac *sdk.Tarmac
func main() {
var err error
// Initialize the Tarmac SDK
tarmac, err = sdk.New(sdk.Config{Handler: Handler})
if err != nil {
return
}
}
// Handler is the custom Tarmac Handler function that will receive a payload and
// must return a payload along with a nil error.
func Handler(payload []byte) ([]byte, error) {
var err error
// Log it
tarmac.Logger.Trace(fmt.Sprintf("Reversing Payload: %s", payload))
// Check Cache
key := string(payload)
rsp, err := tarmac.KV.Get(key)
if err != nil || len(payload) < 1 {
// Flip it and reverse
if len(payload) > 0 {
for i, n := 0, len(payload)-1; i < n; i, n = i+1, n-1 {
payload[i], payload[n] = payload[n], payload[i]
}
}
rsp = payload
// Store in Cache
err = tarmac.KV.Set(key, payload)
if err != nil {
tarmac.Logger.Error(fmt.Sprintf("Unable to cache reversed payload: %s", err))
return rsp, nil
}
}
// Return the payload
return rsp, nil
}
```
To start running this function, navigate to our examples directory and run the `make build` command. The `make build` command compiles the code and generates a WebAssembly module.
```text
$ cd example/tac/go
$ make build
```
Once compiled, you can run this function as a standalone microservice using the following Docker command.
```text
$ docker run -p 8080:8080 \
-e "APP_ENABLE_TLS=false" -e "APP_LISTEN_ADDR=0.0.0.0:8080" \
-v `pwd`/functions:/functions madflojo/tarmac
```
With Tarmac now running, we can access our WASM function using any HTTP Client such as `curl`.
```text
$ curl -v --data "Tarmac Example" http://localhost:8080
```
That's it! You can write and deploy functions in Go, Rust, AssemblyScript, Swift, or Zig with Tarmac. For more advanced functions, check out our [developer guides](https://tarmac.gitbook.io/tarmac/wasm-functions/go).
## Multi-Function Services
While users of Tarmac can build standalone microservices with a single function quickly, it shines with multi-function services. Tarmac's ability to run multiple functions means you can create purpose-built platforms with the developer experience of serverless functions.
To get started with multi-function services, you must provide a `tarmac.json` configuration file (via thExcerpt of 9,079 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:0624a1d8bf1785ff, topic:serverless