Product

GemDB Code

Experience GemDB right inside VSCode. Create objects, commit transactions, and see how your code is the schema. Our Ice Cream Brain Freeze sample app gets you productive in minutes.

Install GemDB Code from the VSCode Marketplace

New flavors, toppings, and risk factors. Your schema shouldn’t need a rewrite every time the menu changes. See how GemDB and agents work together to evolve the schema in our sample app.

Begin Tutorial

Most applications are written with objects but store their data in tables.

An ORM translates between the two, so every change has to be made twice. In the example below, changing phone to phones is one line of code. In a relational database it is also a migration:

The Dual-Model Friction Point
Most apps use OO code and relational DBs, requiring mapping logic or ORMs.
Object-Oriented Code
ORM
Relational Database
1. Code Change
class Person: phone: str
Update
class Person: phones: list[str]
Requires Translation Step
2. Schema Migration
CREATE TABLE phones (...); INSERT INTO phones SELECT ... FROM person; ALTER TABLE person DROP COLUMN phone;

The result?

Migrations like this are slow (multiple releases to expand and contract), risky (bugs, lost or malformed data), and expensive (human review and agent tokens). AI-assisted coding speeds up the code side but not the database side, so migration becomes the bottleneck.

Python

class Person:
    phone: str

--> CREATE TABLE phones (...);
    INSERT INTO phones SELECT ... FROM person;
    ALTER TABLE person DROP COLUMN phone;

class Person:
    phone: list[str]

In GemDB, the class is the schema.

There is no ORM, no SQL, and no DDL. Make the change once, in the class. If existing data needs a new shape, add a migrate() function to the same class:

Unified Architecture & Inline Migration
GemDB
Shared Model
Object-Oriented Code
Transactional Object Database
INITIAL SCHEMA
class Person: phone: str
CODE CHANGE
UPDATED CLASS & MIGRATION
class Person: phones: list[str]
def migrate(self, old): self.phones = [old.phone]

The result:

Code and data share a single definition, so the change goes through your normal review, testing, and release process. There are no separate migration scripts and no second system to reconcile.

Python

class Person:
    phone: list[str]

    def migrate(self, old):
        self.phone = [old.phone]

GemDB features

  • Objects are persisted as objects, including their classes and methods. There are no rows, columns, or JSON mapping.
  • A class definition is the data definition. There is no SQL, no DDL, and no ORM.
  • A commit writes everything reachable from the committed objects, so an entire object graph persists atomically.
  • When existing data needs a new shape, you embed a migrate() function in the class. There is no external migration process and no migration-induced downtime.
  • Process-bound data, such as compiled regex caches, can be kept per session and is never committed.
  • Fully ACID-compliant.
  • Explicit transaction control and nothing is committed automatically. commit reports success or conflict, abort discards uncommitted changes, and conflict details are available after a failed commit.
  • Pre-commit auditing before writing. deploy_check lists values that won't survive a commit, such as open files, sockets, and generators.
  • Support for concurrent workloads. Sub-millisecond resilience under high concurrency.
  • Python modules and classes are compiled into the database as native objects. Python runs in the same object space as the data, with native Smalltalk types.
  • Run scripts from the command line or use an interactive REPL. A built-in module provides low-level session and transaction access, and gemdb is the API for application code.
  • Continuations let one call return a second time, possibly in another session, which underpins durable workflows.
  • Kerberos and X.509 certificate authentication, plus OTP and SSH/SFTP.
  • Encryption in transit with TLS, including for secure backup transport.
  • Encrypted data at rest and encrypted backups.
  • Azure Key Vault integration.
  • In-depth privilege model.
  • VS Code extension downloads, installs, and starts the database engine automatically.
  • Jupyter notebook for interactive Python against a live database.
  • MCP server for natural-language queries through any compatible chat agent.
  • Skills file for coding agents to add features, write migration functions, and update Python objects against a running instance.
  • Ice Cream Brain Freeze Insurance demo app, with a preloaded dataset and a guided walkthrough covering persistence, queries, and schema evolution.
  • Architecture. 64-bit, runs on Linux and macOS.
  • Editions. Coming soon.

Talk to our team of experts to learn how GemDB can help you scale your AI strategy

Contact Sales