Did you ever ask yourself:
Did someone already implement a Zig package for that?
Well, i tried to answer this question for everyone and created a package aggregator on zig.pm!
You can find packages from all over the place there, including GitHub, aquila.red and astrolabe.pm.
How can i add my package to the index?
If you have your package online on GitHub, please add the
zig-package topic to your repository.
Otherwise, you can also publish your package via aquila.red or astrolabe.pm.
If enough people establish this topic/tag on other sites like sr.ht or codeberg, we can add these sources to the index, too!
How can i access it?
The package index provides an API under zig.pm/api with two end points:
Feel free to use that for package managers or other cool stuff!
How does it work?
I run the package-collector once every 15 minutes. This tool then uses the APIs of GitHub, astrolabe.pm and aquila.red to collect and deduplicate packages (by their clone url).
For aquila.red and astrolabe.pm i assume that everything is a Zig package, for GitHub, i scrape the topics
Feel free to PR me improvements or new package sources to the repo, so we can make this the absolute package index for Zig where we can find all packages!
Spread the word!
Make sure everyone hears of this. Let's package
zig-package the industry standard for finding zig packages on any code distribution site and index.
If you want to help me pay the VPS, you can either sponsor me on GitHub or drop me some money via PayPal to help me finance this server!
How do I add non-git packages (eg zigqlite)? Hopefully fossil support will be merged to zigmod, but even without it, I have automatic tar and zip links.
That's a pretty good question! Maybe i should replace the
gitproperty with a
sourcesproperty where one can add several sources:
but how? all of the sources mentioned in the article are git based. where can I submit links to my packages?
Change the entries in github.com/ziglibs/repository, they are not using a git source. Well, right now they are, but submit a change that allows that :)