NacDB - a database with seamless enumeration

NacDB is like CanDB that it is a multi-canister database, but unlike CanDB, NacDB consists of sub-databases, each of which is contained in a canister (in every partition canister there can be several sub-DBs). It allows a sub-DB to be efficiently scanned/enumerated/listed.

To save money on creating of new canister, a sub-DB can be automatically moved between canisters (to the last or to a newly allocated canister). When a sub-DB is moved, a callback is called for the app that uses NacDB that allows the app to change “links” to the sub-DB elements, e.g. update the CanDB that stores keys to NacDB. (So, it is recommended to use NacDB together with CanDB. NacDB is recommended to be used only when you need enumerating items.)


Found bugs. The project is in process of rewriting. API changed and may change further.