v0.2.4 · zero-dependency · source-available
A full database, in pure TypeScript.
SQL, a typed ORM, documents, search, vectors, files and row-level security — one embedded engine, one file, zero dependencies. No node-gyp, no native binaries, no server. npm install and go.
Everything in one file
One engine, nine jobs
SQL engine
Tables, indexes, constraints, aggregates, GROUP BY, functions, JSON paths and parameter binding.
Typed ORM, no codegen
A Prisma-style client from a plain TypeScript schema. The database follows the schema automatically.
Real transactions
All-or-nothing writes through a write-ahead log, crash recovery, BEGIN / COMMIT / ROLLBACK.
Document store
Schemaless JSON collections with MongoDB-style operators on the same ACID engine.
Full-text search
Query DSL, BM25 ranking, analyzers, highlighting, aggregations and autocomplete.
Vectors & geo
Exact kNN, hybrid ranking, geo distance and bounding boxes, custom scoring.
Object storage
Buckets of files of any size, streaming, byte ranges, checksums and a mountable HTTP API.
Row-level security
Multi-tenant policies enforced by the query engine, for tables and files alike.
Studio
A built-in web console: browse and edit rows, run SQL, try search queries, manage files.
Multi-process safe
Several processes share one file. Writers take turns, readers see each other's commits.
Zero dependencies
Pure TypeScript on Node built-ins. Nothing to compile, nothing to download at install time.
Fast
Sub-millisecond point lookups and relational joins, even at a million rows. Every write durable.
Schema in code
A typed ORM, no code generation
Define the schema in plain TypeScript. Antopus makes the database match it on start — and every query and result is fully typed.
import { Antopus, t } from '@bigsur/antopus';
const db = new Antopus('./app.db'); // or ':memory:'
const orm = db.orm({
User: {
id: t.id(),
email: t.string().unique(),
posts: t.hasMany('Post'),
},
Post: {
id: t.id(),
title: t.string().search(), // full-text searchable
author: t.belongsTo('User', { onDelete: 'cascade' }),
},
});
const ada = await orm.user.create({
data: { email: 'ada@x.io', posts: { create: [{ title: 'Hello' }] } },
});
const results = await orm.post.findMany({
where: { author: { email: { endsWith: '@x.io' } } },
include: { author: true },
});Measured, not claimed
Fast at a million rows
relational rows in a single file — tested across concurrent writers, exact counts, zero data loss
point lookup by a unique field, at a million rows
a relational join — a user with its posts and their comments
third-party dependencies — pure TypeScript on Node's built-ins, no native build
Benchmarked on a 4-core Linux box: 100,000 users → 600,000 posts → 300,000 comments in one file, with unique, B-tree and full-text indexes and cascade foreign keys.
Questions
- What is Antopus?
- Antopus is a zero-dependency embedded database in pure TypeScript: SQL, a typed ORM, documents, full-text/vector/geo search, blob storage, transactions and row-level security — one in-process engine, one file, nothing to install.
- Does it need a server, a native build or node-gyp?
- No. Antopus is an in-process library — it runs inside your Node application. There is no server to start, no native binaries and no node-gyp. Run npm install @bigsur/antopus and go. It stores everything in one file (or in memory).
- Does it depend on SQLite or any other database?
- No. Antopus has zero third-party runtime dependencies and does not wrap SQLite or any other engine. It reimplements the engine itself — B+tree pages, a buffer pool, a write-ahead log, a SQL parser, an ORM and search — in pure TypeScript on Node's built-in modules.
- Can I use a typed ORM without code generation?
- Yes. You define the schema as plain TypeScript and Antopus brings the database in line with it automatically — tables, columns, indexes, link tables and search indexes. Every query and result is fully typed, with no codegen step and nothing ever dropped.
- Is Antopus open source?
- No. Antopus is proprietary, source-available software of BigSur Corp. You may install it, run it and embed it in your own applications for free under the Antopus Software License. The source is published so you can read and evaluate it, but it is not open source. For other uses: connect@bigsur.in.
- Is Antopus ready for production?
- Antopus is in active development. Every feature listed is built and tested — the full suite passes and a million-row relational stress test runs clean. Try it in your projects and tell us what you need: connect@bigsur.in.
Install Antopus
Requires Node.js 20.15+. Ships ESM and CommonJS with type definitions. Free to use under the source-available Antopus Software License.
npm i @bigsur/antopuspnpm add @bigsur/antopusbun add @bigsur/antopusProprietary, source-available software of BigSur Corp. Other uses: connect@bigsur.in