Back to Blog

Faucet v0.1.7: Oracle Database Support — 7 Databases, One Binary

Faucet v0.1.7 adds full Oracle Database support (12c through 26ai) using a pure-Go driver. No Oracle Instant Client required. Connect Oracle alongside PostgreSQL, MySQL, SQL Server, SQLite, and Snowflake with a single Faucet binary.

Faucet v0.1.7 is now available. The headline feature: full Oracle Database support — from Oracle 12c all the way through Oracle AI Database 26ai, using a pure-Go driver with zero native dependencies. Download it now from GitHub Releases, Homebrew, or Docker Hub.

Why Oracle?

Oracle Database powers a massive share of enterprise workloads. Teams running Oracle alongside PostgreSQL or MySQL have had to maintain separate API layers or resort to hand-written middleware. With v0.1.7, Faucet connects to Oracle the same way it connects to everything else: point it at a DSN, get a REST API.

This brings Faucet to 7 supported database engines — PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite, and Snowflake — all from a single binary.

What’s Included

Full CRUD + Filtering

Every feature that works with PostgreSQL or MySQL now works with Oracle:

  • GET with filtering, sorting, pagination (OFFSET/FETCH NEXT)
  • POST single and bulk insert (INSERT ALL)
  • PUT/PATCH with conditional updates
  • DELETE with filter predicates
  • Stored procedures — call PL/SQL procedures via the REST API

Pure-Go Driver

Faucet uses go-ora, a pure-Go Oracle driver. This means:

  • No Oracle Instant Client. No LD_LIBRARY_PATH. No .so files. No CGO.
  • Cross-platform. The same Faucet binary runs on Linux (amd64/arm64), macOS (Intel/Apple Silicon), and Windows.
  • Docker-friendly. No Oracle libraries to bundle into your container. The existing faucetdb/faucet image just works.

Schema Introspection

Faucet reads Oracle’s catalog views (ALL_TABLES, ALL_TAB_COLUMNS, ALL_CONSTRAINTS, ALL_CONS_COLUMNS) to discover your schema automatically. Primary keys, foreign keys, nullable columns, data types — all introspected and exposed in the OpenAPI spec.

Oracle-Native SQL

The query builder generates Oracle-idiomatic SQL:

  • Bind parameters: :1, :2, :3 (not $1 or ?)
  • Pagination: OFFSET n ROWS FETCH NEXT m ROWS ONLY (Oracle 12c+)
  • Bulk insert: INSERT ALL INTO ... INTO ... SELECT 1 FROM DUAL
  • Stored procedures: BEGIN schema.procedure(:1, :2); END;

Cloud Compatibility

Tested with:

  • Oracle Cloud Infrastructure (OCI) — Autonomous Database, Base Database Service
  • Amazon RDS for Oracle
  • Azure Database — Oracle workloads on Azure VMs

Quick Start

# Install or upgrade
brew update && brew upgrade faucet

# Add an Oracle connection
faucet db add --name myoracle --driver oracle \
  --dsn "oracle://user:pass@localhost:1521/XEPDB1"

# Start serving
faucet serve

Your Oracle tables are now available at http://localhost:8080/api/v1/myoracle/_table/.

Supported Versions

VersionStatus
Oracle 12c (12.1, 12.2)Supported
Oracle 18cSupported
Oracle 19cSupported
Oracle 21cSupported
Oracle 23aiSupported
Oracle 26aiSupported

Oracle 26ai — Oracle’s latest AI-native database release from January 2026 — is fully supported. The go-ora driver is compatible with all Oracle Database versions from 12c onward.

Also in This Release

  • SQLite version coverage updated through 3.52 (released March 1, 2026)
  • Database count corrected to 7 across all documentation and marketing materials

Install or Upgrade

Homebrew:

brew update && brew upgrade faucet

Docker:

docker pull faucetdb/faucet:0.1.7

Go install:

go install github.com/faucetdb/[email protected]

Binary download:

Grab the binary for your platform from GitHub Releases. Available for Linux (amd64, arm64), macOS (Apple Silicon, Intel), and Windows.

What’s Next

With 7 database engines covered, the focus shifts to the features that make multi-database deployments production-ready:

  • Cross-database joins — query across Oracle and PostgreSQL in a single request
  • Oracle-specific MCP tools — AI agents that can introspect and query Oracle through the Model Context Protocol
  • Advanced PL/SQL support — function return values, OUT parameters, and cursor-based result sets

Star the project on GitHub to follow along, and open an issue if you run into anything.

FAQ

How do I upgrade from v0.1.6?

Run brew upgrade faucet or docker pull faucetdb/faucet:0.1.7. Binary users can download the new release from GitHub. No config migration needed — just add your Oracle connection.

Do I need Oracle Instant Client?

No. Faucet uses a pure-Go driver (go-ora) that speaks the Oracle Net Protocol directly. No native libraries, no CGO, no Instant Client.

Does Oracle support schema contract locking?

Yes. The schema locking feature introduced in v0.1.6 works with Oracle connections. Lock, diff, and promote Oracle schema contracts the same way you would with PostgreSQL or MySQL.

What Oracle authentication methods are supported?

Username/password via the Oracle DSN. Wallet-based authentication and Oracle Cloud IAM token auth are on the roadmap.

Can I connect to Oracle Autonomous Database on OCI?

Yes. Use the standard Oracle connection string with your wallet credentials. Faucet connects through the go-ora driver, which supports OCI connectivity.