Open Source · MIT Licensed

Turn On The Data

Faucet is an open-source, single-binary server that turns any SQL database into a secure, governed REST API with role-based access control and native MCP support for applications and AI agents.

Works with your database
PostgreSQL
MySQL
MariaDB
SQL Server
Snowflake
SQLite

Architecture

One Binary. Every Database.

Connect any SQL database. Faucet introspects the schema and generates a full REST API with authentication, RBAC, and OpenAPI docs — instantly.

PostgreSQL MySQL MariaDB SQL Server Snowflake SQLite FAUCET REST API MCP (AI Agents) OpenAPI 3.1 Admin UI

How It Works

How Data Flows Through Faucet

Your database already has an API. You just haven't turned it on yet. Faucet connects, introspects, and serves — in under 60 seconds.

SQL Database Your existing data CONNECT FAUCET Auth · RBAC · Schema Introspection · Caching SERVE { "resource": [...] "meta": { ... } } REST + MCP + OpenAPI
47 MB
Single binary size
<60s
Database to API
6
SQL databases supported
0
Dependencies required

Why Faucet

The Old Way vs. The Faucet Way

Traditional API platforms require a stack of services, containers, and configuration. Faucet replaces all of it with one binary.

Traditional Stack
Docker + Docker Compose
Nginx / reverse proxy
PHP-FPM / application runtime
System database (MySQL/Postgres)
Redis cache layer
2.6 GB disk / 666 MB RAM
10-15 min to first API call
The Faucet Way
Single 47 MB binary
Built-in HTTP server
Go runtime — goroutines, not processes
Embedded SQLite config store
No cache layer needed
47 MB disk / 107 MB RAM
<60 seconds to first API call

Features

Everything You Need. Nothing You Don't.

Faucet is an open-source server that turns any SQL database into a secure, governed REST API for applications and AI agents.

Role-Based Access Control

Define roles with granular per-table, per-column permissions. API keys scoped to roles. JWT authentication built in.

Native MCP Server

Built-in Model Context Protocol support. Claude, GPT, and any AI agent can query your database through natural language immediately.

OpenAPI 3.1 Auto-Gen

Automatic OpenAPI documentation generated from your database schema. Always up to date, always accurate.

Embedded Admin UI

Manage connections, browse data, create roles, and test API calls — all from a built-in web interface. No separate install.

6 Database Connectors

PostgreSQL, MySQL, MariaDB, SQL Server, Snowflake, and SQLite. Connect any combination simultaneously with a single Faucet instance.

Zero Dependencies

No Docker. No Nginx. No Redis. No system database. Download one binary, run one command. That's it.

Database Connectors

Connect Any SQL Database

Faucet supports 6 database engines — from legacy SQL Server 2008 to modern cloud-native Snowflake. One binary connects them all.

PostgreSQL

9.6+
9.6 10 11 12 13 14 15 16 17
RETURNING clause
Stored procedures
Upsert (ON CONFLICT)
Schema DDL
Amazon RDS Aurora Supabase Neon Azure DB
--driver postgres pgx/v5 — native Go driver

MySQL

5.7+
5.7 8.0 8.1 8.2 8.3 8.4 9.0 9.1
Stored procedures
Upsert (ON DUPLICATE KEY)
Schema DDL
RETURNING requires 8.0.21+
Amazon RDS Aurora PlanetScale Azure DB
--driver mysql go-sql-driver — pure Go

MariaDB

10.2+
10.2 10.3 10.4 10.5 10.6 10.11 11.0 11.4
MySQL wire protocol
Stored procedures
RETURNING (10.5+)
Schema DDL
SkySQL Amazon RDS Azure DB
--driver mysql Via MySQL driver — fully compatible

SQL Server

2008+
2008 2012 2014 2016 2017 2019 2022
OUTPUT clause (RETURNING)
Stored procedures
MERGE upsert
Schema DDL
Azure SQL Azure Managed Amazon RDS
--driver mssql go-mssqldb — TDS protocol

SQLite

3.35+
3.35 3.36 3.37 3.38 3.39 3.40+
RETURNING clause
Embedded — no server needed
Schema DDL
Pure Go — no CGO required
Turso Litestream Fly.io
--driver sqlite modernc.org/sqlite — pure Go

Snowflake

Cloud
Always Latest Cloud-Native
Key pair (JWT) auth
Warehouse queries
Schema introspection
Read + write operations
AWS Azure GCP
--driver snowflake gosnowflake — official driver

Connect Any Database in One Command

terminal
faucet db add --name mydb --driver postgres \
  --dsn "postgres://user:pass@localhost:5432/mydb?sslmode=disable"

# Works with PostgreSQL 9.6 through 17
# Compatible with RDS, Aurora, Supabase, Neon, Azure
faucet db add --name mydb --driver mysql \
  --dsn "user:pass@tcp(localhost:3306)/mydb"

# Works with MySQL 5.7+ and MariaDB 10.2+
# Compatible with RDS, Aurora, PlanetScale, Azure
faucet db add --name mydb --driver mssql \
  --dsn "sqlserver://user:pass@localhost:1433?database=mydb"

# Works with SQL Server 2008 through 2022
# Compatible with Azure SQL, Amazon RDS
faucet db add --name mydb --driver sqlite \
  --dsn "file:./data/mydb.sqlite?_journal=wal"

# Embedded — no separate database server needed
# SQLite 3.35+ for RETURNING support
faucet db add --name mydb --driver snowflake \
  --dsn "user:pass@account/database/schema?warehouse=compute_wh"

# Cloud-native data warehouse
# Key pair (JWT) authentication supported

Faucet generates REST APIs for PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16, and 17 — including Amazon RDS for PostgreSQL, Aurora PostgreSQL, Supabase, and Neon. It supports MySQL 5.7, 8.0, 8.4, and 9.x along with MariaDB 10.2 through 11.x — including Amazon RDS for MySQL, Aurora MySQL, and PlanetScale. For Microsoft environments, Faucet connects to SQL Server 2008, 2012, 2014, 2016, 2017, 2019, and 2022 — including Azure SQL Database and Amazon RDS for SQL Server. Faucet also supports SQLite 3.35+ as an embedded database and Snowflake cloud data warehouse on AWS, Azure, and GCP.

Performance

Blazing Fast. Rock Solid.

Benchmarked head-to-head against every major database-to-API platform. Same PostgreSQL, same dataset, same hardware. Zero caching. Raw performance.

0ms
Average Response Time Faucet serves a 25-record query in 13ms — with full auth middleware, RBAC checks, and JSON serialization. No cache. No shortcuts.
Faucet 13ms
DreamFactory 156ms
12x faster than the leading multi-database competitor — without caching
0x
Faster Than DreamFactory
724 rps vs 64 rps on identical workloads. Under stress, the gap widens to 14x.
0x
Smaller Than DreamFactory
47 MB single binary vs 2.6 GB multi-container stack. 107 MB RAM vs 666 MB.

When Traffic Spikes 5x, Who Survives?

Concurrency increased from 10 to 50 simultaneous users. This is what happens.

Faucet 5% drop
724 688 rps
Hasura 44% drop
6,411 3,578 rps
PostgREST 76% drop
5,637 1,324 rps
DreamFactory 23% drop
64 49 rps
Faucet's Go-native connection pooling means your API doesn't crumble when real users show up. DreamFactory's worst-case latency hit 11.6 seconds under the same load.

Deployment Footprint

What it actually takes to run each platform in production.

47
MB
Faucet
Single binary · 107 MB RAM
Zero dependencies
322
MB
PostgREST
Single binary · 118 MB RAM
Postgres only
529
MB
Hasura
Docker container · 152 MB RAM
Postgres + MSSQL only
2.6
GB
DreamFactory
Docker stack · 666 MB RAM
MySQL + Redis + NGINX required

Raw Throughput

Full transparency. Here are the raw numbers — and what they actually mean.

Hasura PG only · GraphQL
6,411
PostgREST PG only · No auth
5,637
Faucet 5 DBs · Auth · RBAC · MCP
724
DreamFactory Multi-DB · Requires cache
64
PostgREST and Hasura are PostgreSQL-only with no application-level auth — they're thin proxies optimized for one database.
Faucet processes full auth middleware, RBAC, and JSON wrapping on every request across 5 database engines.
DreamFactory, Hasura, and PostgREST all ran under QEMU emulation. Faucet ran native arm64. Even adjusting for emulation, Faucet remains 8x+ faster than DreamFactory.

All platforms tested on Apple Silicon (arm64), 8 GB RAM, PostgreSQL 16 with 10k users / 1k products / 50k orders. Full methodology & raw data on GitHub →

Comparison

How Faucet Stacks Up

A fair, honest comparison of database-to-API platforms. Faucet offers the best balance of performance, features, and simplicity.

Feature Faucet DreamFactory PostgREST Hasura
Multi-DB Support 6 databases Yes Postgres only Postgres + MSSQL
Single Binary Yes (47 MB) Docker stack Yes Docker
Embedded Admin UI Yes Yes No Console
OpenAPI Generation 3.1 2.0 Yes GraphQL only
MCP Server (AI) Native Partial No No
RBAC Built-in Built-in Via Postgres RLS Yes
Stored Procedures Yes Yes Functions No
Schema DDL via API Yes Yes No Migrations
Idle RAM 107 MB 666 MB 118 MB 152 MB
License MIT Apache 2.0 MIT Apache 2.0

Use Cases

Built for Every Team

Whether you're a solo developer prototyping an MVP or an enterprise team governing data access, Faucet fits your workflow.

Backend Developers

Skip the boilerplate. Point Faucet at your database and get a production-grade REST API with auth, pagination, and filtering — instantly. Spend time on business logic, not CRUD.

Rapid Prototyping

AI / ML Engineers

Native MCP server means Claude, GPT, and any AI agent can query your database through natural language. No custom integration code. Just connect and ask.

AI-Native

Enterprise Teams

Role-based access control, API key management, audit-ready OpenAPI documentation, and SSO support. Govern data access without building it from scratch.

Governance

DevOps / Platform Teams

No Docker Compose. No Redis. No Nginx. Deploy a single 47 MB binary and forget about it. Run on bare metal, in a container, or on any cloud VM.

Simplicity

Startups / MVPs

Ship your data layer in 60 seconds. Faucet gives you a complete API with auth and docs from day one. Build your frontend and iterate — the backend is done.

Speed to Market

Internal Tools

Build admin dashboards, reporting tools, and data browsers on top of Faucet's REST API. No backend team needed. Connect your data and build your UI.

Low Code

Get Started

Database to API in 60 Seconds

One binary. One command. Zero configuration required.

1

Install Faucet

Download a single binary — 47 MB, zero dependencies.

2

Start the Server

Run faucet serve and you're live.

3

Connect a Database

Point it at PostgreSQL, MySQL, SQL Server, Snowflake, or SQLite.

4

Query Your API

Full REST API with auth, filtering, pagination, and OpenAPI docs — ready.

terminal
# Install
brew install faucetdb/tap/faucet

# Start
faucet serve

# Connect your database
faucet db add --name mydb --driver postgres \
  --dsn "postgres://user:pass@localhost/mydb"

# Query it
curl http://localhost:8080/api/v1/mydb/_table/users
# Install with Go 1.25+
go install github.com/faucetdb/faucet/cmd/faucet@latest

# Start
faucet serve

# Connect your database
faucet db add --name mydb --driver postgres \
  --dsn "postgres://user:pass@localhost/mydb"
# Pull and run
docker run -p 8080:8080 faucetdb/faucet:latest

# Or with Docker Compose
docker run -p 8080:8080 \
  -e FAUCET_SERVER_PORT=8080 \
  faucetdb/faucet:latest
# Download from GitHub Releases
curl -sL https://github.com/faucetdb/faucet/releases/latest \
  -o faucet

chmod +x faucet
./faucet serve

Pricing

Free Forever. Upgrade When You Need To.

Faucet is fully open-source and MIT licensed. Every feature — RBAC, MCP, Admin UI, all 5 database connectors — is free. Faucet Cloud adds managed hosting for teams that need it.

Free
Open Source (MIT)
$5/mo
Pro
$50/mo
Team
Custom
Enterprise
View Pricing Details

Ready to Turn On the Data?

Faucet is an open-source server that turns any SQL database into a secure, governed REST API for applications and AI agents.