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.
Architecture
Connect any SQL database. Faucet introspects the schema and generates a full REST API with authentication, RBAC, and OpenAPI docs — instantly.
How It Works
Your database already has an API. You just haven't turned it on yet. Faucet connects, introspects, and serves — in under 60 seconds.
Why Faucet
Traditional API platforms require a stack of services, containers, and configuration. Faucet replaces all of it with one binary.
Features
Faucet is an open-source server that turns any SQL database into a secure, governed REST API for applications and AI agents.
Define roles with granular per-table, per-column permissions. API keys scoped to roles. JWT authentication built in.
Built-in Model Context Protocol support. Claude, GPT, and any AI agent can query your database through natural language immediately.
Automatic OpenAPI documentation generated from your database schema. Always up to date, always accurate.
Manage connections, browse data, create roles, and test API calls — all from a built-in web interface. No separate install.
PostgreSQL, MySQL, MariaDB, SQL Server, Snowflake, and SQLite. Connect any combination simultaneously with a single Faucet instance.
No Docker. No Nginx. No Redis. No system database. Download one binary, run one command. That's it.
Database Connectors
Faucet supports 6 database engines — from legacy SQL Server 2008 to modern cloud-native Snowflake. One binary connects them all.
--driver postgres
pgx/v5 — native Go driver
--driver mysql
go-sql-driver — pure Go
--driver mysql
Via MySQL driver — fully compatible
--driver mssql
go-mssqldb — TDS protocol
--driver sqlite
modernc.org/sqlite — pure Go
--driver snowflake
gosnowflake — official driver
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
Benchmarked head-to-head against every major database-to-API platform. Same PostgreSQL, same dataset, same hardware. Zero caching. Raw performance.
Concurrency increased from 10 to 50 simultaneous users. This is what happens.
What it actually takes to run each platform in production.
Full transparency. Here are the raw numbers — and what they actually mean.
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
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
Whether you're a solo developer prototyping an MVP or an enterprise team governing data access, Faucet fits your workflow.
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 PrototypingNative 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-NativeRole-based access control, API key management, audit-ready OpenAPI documentation, and SSO support. Govern data access without building it from scratch.
GovernanceNo 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.
SimplicityShip 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 MarketBuild 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 CodeGet Started
One binary. One command. Zero configuration required.
Download a single binary — 47 MB, zero dependencies.
Run faucet serve and you're live.
Point it at PostgreSQL, MySQL, SQL Server, Snowflake, or SQLite.
Full REST API with auth, filtering, pagination, and OpenAPI docs — ready.
# 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
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.
Faucet is an open-source server that turns any SQL database into a secure, governed REST API for applications and AI agents.