blazersGitHub

Your whole backend, in one blazing fast binary.

Blazers is a Back-end as a Service written in Rust: auth, a schema-less database, file storage, realtime streams, webhooks, cron jobs, encrypted secrets, pub/sub and an admin dashboard — all persisted to a single SQLite file. No Docker, no accounts, no cloud.

1
binary
1
SQLite file
20+
API features
zero to backend
$ cargo install blazers$ blazersServer running at http://localhost:8080$ curl -X POST localhost:8080/api/auth/register \    -d '{"email":"a@b.c", "password":"secret1"}'{"id":"82ff…", "email":"a@b.c"}$ curl localhost:8080/api/docsSwagger UI — every endpoint documented

Everything a BaaS should do — nothing it shouldn't.

Modelled on PocketBase's "one file, one binary" philosophy and Supabase's feature breadth, shipped as a Cargo workspace you can audit crate by crate.

Auth & permissions

Register, login, JWT bearer tokens, bcrypt passwords and a per-collection permission system — public, user and admin rules enforced on every request.

Collections & records

Schema-less collections stored as dynamic SQLite tables. Full CRUD with paging, search, sorting and JSON-schema validation.

File buckets

Public and private buckets, streaming uploads, downloads and on-the-fly image thumbnails — files live next to the database.

Realtime

WebSocket hub plus Server-Sent Events streams for notifications, logs and pub/sub topics — subscribe from any browser or client.

Webhooks & cron

HMAC-signed webhook delivery with logs, and scheduled HTTP jobs managed entirely through the API — no code required.

Secrets vault & cache

AES-256-GCM encrypted key/value store for credentials, plus a Redis-style cache — strings, lists, hashes, atomic INCR/APPEND, TTL — persisted to SQLite.

Admin dashboard

An HTMX admin UI embedded in the binary at / — manage collections, records, files, webhooks, secrets and cron jobs from the browser. No build step.

MCP server

blazers mcp serve exposes collections and records as Model Context Protocol tools — let an AI agent read and write your backend over stdio.

OpenAPI & SDK-ready

Swagger UI at /api/docs, a runtime-generated OpenAPI spec, JSON import/export snapshots and a backup endpoint.

Same ideas as PocketBase — more of Supabase's surface.

One binary and one SQLite file like PocketBase; auth, storage, realtime, functions-adjacent jobs and an admin UI like Supabase — without Postgres, GoTrue or a fleet of services.

FeaturePocketBaseBlazersrustSupabase
Deployment1 Go binary + pb_data/1 Rust binary + ~/.blazers/Postgres + GoTrue + PostgREST + Realtime + Storage
DatabaseSQLiteSQLitePostgres
AuthEmail + OAuth2, request rulesEmail + JWT (bcrypt), RBAC rolesGoTrue — email, OAuth2, MFA
File storageBucketsBuckets + thumbnailsS3-compatible storage
RealtimeSSE subscriptionsWebSocket + SSE + pub/subRealtime (Postgres changes)
ExtensibilityJS hooks (pb_hooks)HMAC webhooks + cron → HTTPEdge Functions (Deno)
Scheduled jobs—Cron expressions, built-inScheduled Edge Functions
Admin UIBundled SPAEmbedded HTMX at /Supabase Studio
API spec—OpenAPI + Swagger UIOpenAPI (PostgREST)
AI / agent access—MCP server (stdio)—
Ops extrasBackups, logsCache, secrets vault, notifications, logsManaged add-ons (Auth, Realtime, …)

Comparing deployment model, auth, storage, realtime and ops surface — not raw throughput. Blazers aims for PocketBase's simplicity with more of Supabase's feature set.

Up and running in under a minute.

Prebuilt binaries on the releases page, or build from source with Cargo.

build from source
$ git clone https://github.com/hieudoanm/blazers$ cd blazers$ cargo build --release -p blazers$ ./target/release/blazers➜ Local:   http://localhost:8080➜ Network: http://192.168.x.x:8080
first API calls
$ curl -X POST localhost:8080/api/auth/register \    -H 'Content-Type: application/json' \    -d '{"email":"admin@example.com","password":"secret123"}'$ TOKEN=$(curl -s -X POST localhost:8080/api/auth/login \    -d '{…}' | jq -r .token)$ curl -X POST localhost:8080/api/collections \    -H "Authorization: Bearer $TOKEN" \    -d '{"name":"posts","schema":{"title":"string"}}'{"name":"posts", …}

Dashboard at / · API docs at /api/docs · Full docs at /docs · MCP server: blazers mcp serve. Data in ~/.blazers/ — set BLAZERS_DATA, PORT and JWT_SECRET to configure.

Give your next side project a real backend.

Self-host it, embed it, or point your AI agent at it over MCP.