Where is the CanCan app source?

The Creating Scalable Apps tutorial references the CanCan app, but I can’t find that app’s source in the examples repository.

Where can I see this example app’s source?


Hey there, good catch! The CanCan source code hasn’t been released yet, I believe there is some reworking going on behind the scenes. I assume as soon as that‘s done, it‘ll be released. Maybe @enzo knows more though :slight_smile:


The release is currently blocked on a dependency. CanCan depends on the Rust implementation of BigMap, and some folks don’t want to release this until it implements auto-scaling using the dynamic canister creation primitives provided in the system API. @sat would know more.


I would be very happy if we would open source BigMap, but the decision about this is not in my hands. In the recent months the work on BigMap has been de-prioritized in favor of the work on the releasing the alpha/beta/stable mainnet.
What might help move things forward wrt the request from this topic is the community voice - please ask for it and this may help raise the priority of open sourcing BigMap.


Yes, As a blockchain developer, I’m looking forward to the documents and source code for BigMap. At the same time, I also understand that there is lots of works need to be done for launching Beta/Genesis.

The documentation in the sdk is great. After reading it, I can understand the mechanism and principle of Internet Computer from a high level, and can also write some code to implement some functions, such as Ledger. But how to deal with file-related data such as pictures, videos, etc., lacks relevant documents. These functions can truly unleash the power of Internet computers, not just the better Ethereum. Bigmap can achieve these functions.

1 Like

I find it very strange that BigMap won’t be released before the Genesis event; leaving individual developers to create a system for auto-scaling their storage seems vital if Dfinity actually wants developers to switch to the IC from more traditional services that abstract out this behavior for you. I went into the “Create Scaleable Apps” section today expecting to learn more about how to use BigMap and was quite shocked that it’s not available for public use yet knowing that the Genesis event is right around the corner.


I think I saw someone say that bigmap works pretty much the same as a hashmap so for the now, to use a normal-hashmap and then it’ll be easy to switch.

1 Like

Will the CanCan app source code be made public after the demo during the Genesis event?


The answer is yes: GitHub - dfinity/cancan: A scalable video-sharing service. and to my surprise, it’s writen by Motoko :motoko_go: , not Rust.


Looks like they didn’t actually use big map in this demo. There is some reference to “git@github.com:dfinity/motoko-bigmap.git” but that repo doesn’t exist. Still waiting.




Thanks! Am I right in assuming that this implementation just maps word8 to Natural numbers? If I want to do something more sophisticated I just need to change the types in Main.mo to my type? Seems like the size of the object stored in the map might affect the slice size or capacity, so maybe there is more to it?

sorry just saw this. Yes, we actually made it public the night before. Blog Post incoming, but we did not want to distract from Genesis

You are right. We did not think BigMap was ready for primetime (got de-prioritized in favor of Genesis) so we just used a simpler version… we did not want to keep blocking all the features of CanCan just for that.