Vessel - a package manager for motoko

I just stumbled on this in the docs! We now have a package manager for motoko :seedling:

8 Likes

It would be cool if someone also manage to implement something like a “canister registry” where you can find a canister that does something that you need and already populated with data from other canisters using it.

4 Likes

Maybe we can make one?

1 Like

That’s strange timing—I‘m just building something like that, it should be ready for Tungsten!

4 Likes

Any features that might be particularly useful? Essentially going for something that’s of use to us all here for tungsten.

(Slight thread hijack going on here, sorry Moritz!)

2 Likes

As a guy who wants to share a canister I’d expect a UI where I can save some information about my deployed canister (name, canisterId, some docs). Maybe it would be useful to be able to also upload a .did file of my canister and see some automatically generated API spec for it. It would be also useful to force canisters to have some healthcheck function and periodically check for their availability.

As a guy who wants to use some of shared canisters I’d like to search for key words, find something that is popular, get the canisterId and download it’s .did file (so I could generate client-code by myself).

What do you think?

2 Likes

Pretty close to my thinking, ok thanks, great input. I like the healthcheck idea, on this I was wondering how much devs would want to muddy their IDLs with additional functions like this? A healthcheck’s probably ok, since it’s generally useful to have.

2 Likes

Does any of you have a sane way of using vessel when building an IC canister by means of dfx build?

The way (recent versions of) Vessel seem to work, is that it (via vessel sources) provides a set of additional flags to pass to moc - similar to how you’d eg link a library with gcc.

However when building an IC canister, it doesn’t seem intended (nor reasonable) to call moc directly. Rather one uses dfx build, which will call moc internally.

You can tell dfx to call vessel by changing defaults->build->packtool to vessel sources in your dfx.json. I’m in the process of properly documenting the dfx + vessel workflow.

5 Likes

Oh, that’s great! Thanks for the heads-up. Looking forward to the updated docs on that part, then. :slight_smile:

1 Like