Skip to content
This repository was archived by the owner on Jun 16, 2026. It is now read-only.

undervolta/NimbusDB

Repository files navigation

NimbusDB

NimbusDB Banner

NimbusDB Version NimbusDB Docs MIT License wakatime
GameMaker Support

A full-featured, in-memory database/ORM library for GameMaker (GML). Built around structured data, flexible querying, and reactive data flow.

Important

This project is archived due to the author no longer using GameMaker and has no plans for further development.

Warning

All JSDocs in the src/types folder are initially written by AI. It may be inaccurate or outdated compared to the website's documentation. So, please don't use them if you, your team, or your project does not support AI-generated content.


Features

  • Models & Schemas

    Schema-backed data storage with typed columns, constraints (PRIMARY_KEY, UNIQUE, OPTIONAL), custom validators, and default values, or go fully schemaless for rapid prototyping.

  • Catalogs

    Organize multiple models into a single database, with aware relations between models in the same catalog.

  • Relations & Joins

    Connect your data using directional or mutual relations, with full support for advanced joins (INNER, LEFT, RIGHT, FULL, CROSS), resolved lazily at the data level.

  • Powerful Queries

    Query by index, primary key, column value, or custom function, with operators, wildcards, preprocessors, column aliases, and result transformations built in.

  • Pipelines

    Chainable, lazy data transformation pipelines (filter, map, reduce, group_by, sort, and more) with cursor-based step control and configurable caching strategies.

  • Reactivity

    Keep your UI and game state perfectly synchronized using Computed, Watcher, and Derived bindings, NimbusDB's standout, Redis-inspired reactive system.

  • Transactions

    Buffered transaction contexts with full commit, rollback, and replay capabilities for atomic, consistent operations.

  • Import / Export & Backup

    Seamless data migration with built-in support for CSV, JSON, JSONL, and NDBIN formats, plus catalog-level backup and restore for snapshot-based persistence.


Installation & Documentation

For more information, please refer to the official documentation.


Development

  1. Clone the repository

    git clone https://github.com/undervolta/NimbusDB.git
  2. Install dependencies

    cd NimbusDB			# change to NimbusDB directory
    bun install			# install dependencies
  3. Make changes in ./src directory

  4. Run scripts

    bun run generate	# code generator
    bun run pack		# pack scripts and other related files

License

NimbusDB is free and open-source. It's licensed under the MIT License.