Announcing ic-dbms 0.1.0 — A Database Framework for the Internet Computer

Hi everyone :waving_hand:

Today I’m happy to announce ic-dbms 0.1.0, an open-source Rust framework that enables you to build a relational-style database canister on the Internet Computer by simply defining a schema.

Instead of manually managing stable structures, indexes, and storage logic, ic-dbms lets you describe your data model and automatically generates a fully functional database canister.

:puzzle_piece: What does ic-dbms do?

Given a set of Rust structs annotated with #[derive(Table)], ic-dbms generates:

  • Tables with primary keys and foreign keys

  • CRUD operations for each table

  • Query support with filtering and pagination

  • Transactions (begin / commit / rollback)

  • Access Control Lists (ACL) to restrict database access

  • A strongly typed Candid API ready to be deployed

In practice, this:

#[derive(Table)]
#[table = “users”]
pub struct User {
#[primary_key]
id: Uint64,
name: Text,
email: Text,
}

It’s sufficient to expose a production-ready database interface from your canister.

:red_question_mark: Why this matters for IC development

One of the most significant pain points when building non-trivial applications on the IC is the lack of a robust database abstraction layer.

Most projects end up reinventing:

  • stable memory layouts

  • double-indexed maps

  • custom serializers

  • ad-hoc query logic

ic-dbms aims to remove that friction by providing a high-level, schema-driven database layer, enabling developers to focus on application logic rather than storage internals.

:hammer_and_wrench: Current status & roadmap

Current features (v0.1.0):

  • Tables, primary keys, foreign keys

  • CRUD operations

  • Queries with filters and pagination

  • Transactions

  • ACLs

Planned features:

  • JOINs between tables

  • Indexes

  • Schema migrations

  • SQL-like query support

  • Column validation and constraints

:link: Links

Feedback, ideas, and contributions are very welcome—especially from anyone building data-intensive canisters on the IC.

Thanks! :raising_hands:

17 Likes

Bravo! Looking forward to updates

1 Like

Thanks for sharing!

Feel free to create a PR to add it here: GitHub - dfinity/awesome-internet-computer: A curated list of awesome projects and resources relating to the Internet Computer Protocol