selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Faasta logo

Self-host Faasta

build-84

Self-hosted FaaS platform for Rust WASI components

BetaOpen SourceMIT
Updatedlast week
LanguageRust
Setup difficultyAdvanced
Stars
227
Ports
80 (HTTP), 443 (HTTPS)
Install with Linux

What is Faasta?

Faasta is a self-hosted Function-as-a-Service platform designed for Rust developers. It compiles Rust handlers as WASIp3 wasi:http/service components that run in-process using Wasmtime, eliminating container overhead. Functions receive SQL, key-value, and blob storage capabilities through wasi-cloud-core host APIs, with local defaults (SQLite, in-memory) that can be swapped for distributed backends (Postgres, Garage/S3, Valkey) without changing guest code. The platform includes a CLI (cargo-faasta) for creating, building, and deploying functions, and a server binary (faasta-server) that handles TLS, scheduling, and capability multiplexing. It targets developers who want serverless-style deployment without vendor lock-in or container complexity.

Should you self-host Faasta?

Faasta scores 39/100 on selfhost.directory (how scoring works) and ranks #5 of 7 in Serverless. It has 227 GitHub stars.

It shipped 10 stable releases in the past year. The latest, build-84, came out on 20 October 2026. New versions land roughly every 1 days.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is faas (68/100, 26 253 stars). It scores higher overall, so compare the two before you pick. See Faasta vs faas side by side.

Features

  • Async I/O with Tokio
  • Capability-level isolation
  • CLI for build and deploy
  • HTML and JSON response types
  • Injected blob storage capability
  • Injected KV capability
  • Injected SQL capability
  • In-process Wasmtime execution
  • Multi-node deployment support
  • Precompiled component caching
  • Systemd service with auto-updates
  • Tenant-scoped storage
  • WASIp3 HTTP components

Faasta README

How to install Faasta

Install Faasta with Linux

Environment variables
FAASTA_SQL_BACKEND, FAASTA_SQL_POSTGRES_DSN, FAASTA_SQL_POSTGRES_POOL_SIZE, FAASTA_BLOB_BACKEND, FAASTA_BLOB_S3_ENDPOINT, FAASTA_BLOB_S3_ACCESS_KEY, FAASTA_BLOB_S3_SECRET_KEY, FAASTA_BLOB_S3_BUCKET, FAASTA_BLOB_S3_REGION, FAASTA_KV_BACKEND, FAASTA_KV_VALKEY_URL

faasta-server
--listen-addr 0.0.0.0:443
--http-listen-addr 0.0.0.0:80
--base-domain faasta.lol
--db-path ./data/db
--functions-path ./functions

Server binary downloaded from GitHub releases

How to configure Faasta

  • FAASTA_BLOB_BACKENDmemoryBlob storage backend type: memory or s3

    Blob storage backend type: memory or s3

    values: memory|s3

  • FAASTA_BLOB_S3_ACCESS_KEYS3 access key

    S3 access key

  • FAASTA_BLOB_S3_BUCKETfaastaS3 bucket name

    S3 bucket name

  • FAASTA_BLOB_S3_ENDPOINTS3-compatible endpoint URL

    S3-compatible endpoint URL

  • FAASTA_BLOB_S3_REGIONgarageS3 region

    S3 region

  • FAASTA_BLOB_S3_SECRET_KEYS3 secret key

    S3 secret key

  • FAASTA_KV_BACKENDmemoryKV backend type: memory or valkey

    KV backend type: memory or valkey

    values: memory|valkey

  • FAASTA_KV_VALKEY_URLValkey/Redis connection URL

    Valkey/Redis connection URL

  • FAASTA_SQL_BACKENDsqliteSQL backend type: sqlite or postgres

    SQL backend type: sqlite or postgres

    values: sqlite|postgres

  • FAASTA_SQL_POSTGRES_DSNPostgreSQL connection string

    PostgreSQL connection string

  • FAASTA_SQL_POSTGRES_POOL_SIZE16PostgreSQL connection pool size

    PostgreSQL connection pool size

Faasta releases & version history

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…