ic-dbms-canister

A framework to build database canisters on the Internet Computer, powered by the wasm-dbms engine.
Define your data tables using Rust structs, derive the Table and DbmsCanister traits,
and get a fully functional database canister with CRUD operations, transactions, and ACL-based
access control.
Usage
Add dependencies
[]
= { = "0.10", = ["value"] }
= "0.19"
= "0.6"
= "0.6"
= "1"
Define tables
use CandidType;
use ;
use ;
use Deserialize;
;
Generated Candid API
service : (IcDbmsCanisterArgs) -> {
acl_add_principal : (principal) -> (Result);
acl_allowed_principals : () -> (vec principal) query;
acl_remove_principal : (principal) -> (Result);
begin_transaction : () -> (nat);
commit : (nat) -> (Result);
delete_posts : (DeleteBehavior, opt Filter_1, opt nat) -> (Result_1);
delete_users : (DeleteBehavior, opt Filter_1, opt nat) -> (Result_1);
insert_posts : (PostInsertRequest, opt nat) -> (Result);
insert_users : (UserInsertRequest, opt nat) -> (Result);
rollback : (nat) -> (Result);
select_posts : (Query, opt nat) -> (Result_2) query;
select_users : (Query_1, opt nat) -> (Result_3) query;
update_posts : (PostUpdateRequest, opt nat) -> (Result_1);
update_users : (UserUpdateRequest, opt nat) -> (Result_1);
}
Interacting with the Canister
See the ic-dbms-client crate for a client library to interact with the canister from other canisters, frontend applications, or CLI tools.
Documentation
Read the full documentation at https://wasm-dbms.cc/ic/
License
This project is licensed under the MIT License. See the LICENSE file for details.