Models & Catalogs
Schema-backed models with constraints and validators, grouped into catalogs with aware relations.
Models & Catalogs
Schema-backed models with constraints and validators, grouped into catalogs with aware relations.
Relations & Joins
Connect your data with directional or mutual relations, and advanced joins (INNER, LEFT, RIGHT, FULL, CROSS).
Pipelines
Lazy, chainable query pipelines (filter, map, reduce, group, sort, and more), only run when you need them.
Reactivity
Computed values, watchers, and derived state keep your game in sync with your data automatically.
Transactions
Buffered transactions with full commit, rollback, and replay for atomic operations.
Import / Export
Migrate data with CSV, JSON, JSONL, and NDBIN, plus catalog backup and restore.
Define a schema, insert data, query it, and react to changes, all in one place.
// Define a schema and create a modelvar schema = { id: { type: NIMBUSDB_DATA_TYPE.INTEGER, const: NIMBUSDB_CONSTRAINT.PRIMARY_KEY }, name: NIMBUSDB_DATA_TYPE.STRING, price: { type: NIMBUSDB_DATA_TYPE.NUMBER, validator: function(data, value) { return value >= 0; }, default_value: 0 }};
items = new NimbusDBModel(id, "items", schema, [ { id: 1, name: "Apple", price: 5 }, { id: 2, name: "Banana", price: 7.2 }]);
// Query with a pipelinevar cheap_items = items.pipe() .filter(function(data) { return data.price < 10; }) .map(function(data) { return { name: data.name, price: data.price }; }) .exec();
// React to changesitems.watch(1, "price", function(data, new_val, old_val) { show_debug_message($"{data.name}'s price changed from {old_val} to {new_val}");});NimbusDB organizes your data around three core layers.
Models & Catalogs
Define schemas with typed columns, constraints, and validators. Group related models into catalogs with aware relations.
Pipelines
Chain lazy operations, filter, map, sort, join, and aggregate, that only run when you call .exec() or its derivatives.
Reactivity
Bind Computed, Watcher, and Derived values to your data so your game state updates automatically.
NimbusDB currently runs on GameMaker, with support for other engines planned as the library grows.
GameMaker
Supported (2.3+). NimbusDB’s primary platform, fully implemented and actively maintained.
Want to help bring NimbusDB to your engine of choice? Join the discussion.
NimbusDB is free and open source, built by the community, for the community.
Documentation
Browse the full docs to learn core concepts, pipelines, and reactivity.
GitHub
Star the repo, report issues, or contribute.
If this project is successful, besides adding more features to NimbusDB, I’d like to: