Unified Database API for JS LibrariesOne API to read & write database
One API to read & write database
For your next library.
FumaDB unifies database access for different runtimes, ORMS and databases. Write once, query anywhere, without managing adapters.
Major ORMs•Edge & Serverless•SQL & NoSQL databases

Build once. Query anywhere.
FumaDB unifies access to different databases & ORMs with a single, elegant interface managed with a single schema.
ORM & Database Agnostic
Integrates with multiple ORMs and databases, without worrying about inconsistencies.
Unified Query API
One set of methods to query, mutate, transact regardless of the underlying database or storage.
Unified Schema API
A simple API for version control & schema definition, backward compatible by default without ambiguity.
Pluggable Adapters
Bring your own adapters, or use our maintained adapters for Kysely, Drizzle ORM, Kysely ORM and more.
Built-in Database Migrator
Your library queries in a controlled environment identical to schema, without chaos.
Safe by Default
Type-safe interfaces, schema-aware operations, and robust runtime checks to prevent foot-guns.
Designed for Everyone.
FumaDB gives your library a consistent way to interact with databases.
It’s great for frameworks & SDKs that want integrating database functionality.
- Minimal surface area, maximum flexibility.
- Type-safe and simple.
import { fumadb } from "fumadb";
import { column, idColumn, schema, table } from "fumadb/schema";
export const v1 = schema({
version: "1.0.0",
tables: {
users: table("users", {
id: idColumn("id", "varchar(255)").defaultTo$("auto"),
name: column("name", "string"),
})
}
});
export const ChatDB = fumadb({
namespace: "fuma-chat",
schemas: [v1],
});
Ready to unify your data layer?
Implement FumaDB in minutes. Migrate slowly, or switch drivers instantly.