An open-source package registry where you can browse, search and actually discover Zig libraries and applications

zigpkg.dev - a package registry for Zig (that also indexes Codeberg)

Hey Zig folks :waving_hand:

For a while now I’ve been building zigpkg.dev - an open-source package
registry where you can browse, search and actually discover Zig libraries
and applications.

It started as an internal tool. The company I work at leans on Zig pretty
heavily, and finding packages by spelunking through GitHub/Codeberg topic
searches got old fast - we just wanted one place to find things. Before
writing our own we went through the existing ones (zigistry.dev, aquila.red,
zig.pm, astrolabe.pm) and most are either unmaintained or missing what we
needed, so… here we are.

What it does

  • Browse & search libraries and applications - filter by topic, owner, type,
    or just A–Z.
  • Every package page renders the README with proper Zig syntax highlighting,
    shows stars / forks / license / version, the file tree and version history.
  • It parses each repo’s build.zig.zon and lists the dependencies, so you can
    see what a package actually pulls in before you add it.
  • Indexes both GitHub/Codeberg - publish on a Forgejo instance and you
    won’t be invisible.
  • Re-syncs every hour (incrementally), so new tags and new packages show up on
    their own listings stay fresh.

Want your package listed? Tag the repo zig-package / zig-library
(libraries) or zig-program (applications) and it gets picked up
automatically.

This isn’t a weekend throwaway - we use it internally, so it’s going to stick
around and keep getting maintained. It’s MIT and fully open source, and
contributions are very welcome: issues, PRs, feature ideas, or just telling me
what annoys you about it.

Would love your feedback :folded_hands:

29 Likes

Really cool, clean UI too. How often is the index refreshed? I realized that one library I often use had no zig-library tag assigned. And now I’m curious how fast the list gets updated with new packages.

1 Like

Thx :slight_smile: Updated every hour, right now, I’m working on a feature for manually adding and possibly registering items.

If you have any ideas, I’m ready to put them into action.

2 Likes

very, very great app, fast and functional. good design. you get it, it’s good

things to look at

  • favicon.ico uses svelte’s icon
  • I used MIT license but it shows it as ‘UNKOWN’ so I might suggest some solutions:
  1. keep it like that and make it modifiable by humans (you, or users request competing info)
  2. when you can’t get the license, before showing unkown, check if root has a LICENSE file and link it
  3. show it next to readme, code and deps
  4. keep it like that (I don’t like making people work :slightly_smiling_face:)

I fixed :slight_smile:

1 Like

I added bandge with last time sync.

1 Like

Very cool :slight_smile:

There seems to be an issue with the license detection, I’m using an unmodified copy of MIT for all my packages which shows up as unknown. E.g. kiesel - zigpkg

it would be nice to have a global package dependency graph like https://zigistry.dev/graph/

1 Like

I have appreciated the little one-sentence (or so) commentary showcasers have added when tagging with llm - would you be willing to offer a short description of how llms were employed?

1 Like

that sites says

Find your next Zig package

but I could not even find my own packages ( one of which has been out there since 2020 ). Do you only scan for packages on new code repositories (like github)? Do you look for specific information to include a package?

If I got it right, the package needs to be tagged zig-package or zig-library. After adding the latter tag to one of my libs, it was indexed on the next run.

2 Likes

You mean tagging the source tree? Or is this some categorisation of the project? (Do you have an example pointer).
Apart from that I have been on sourceforge since 2000, and I am not even sure that is scanned. But maybe my account on codeberg is.

Ok, dont know about souceforge. On codeberg it worked for me adding a tag/label at the landing page of your repo. Its not a git tag, but a label only part of codeberg itself.

Edit: Sorry for the confusion: on codeberg its called “topic” not label or tag

Really love this, and the UI looks clean and intuitive. As someone who has high-standards on what they choose to bookmark in their browser, consider the fact that I bookmarked the site as testament to that.

I have one idea/suggestion for consideration, and it would also apply to Zigistry, and that is a tag that is specific to your registry only.

I personally like being able to use just use zig-package and it get picked up by both, as I am sure is true for the overwhelming majority of users who do so, but in the event someone only wanted to opt-in to one registry (such as ethical reasons), they would have the option to use a tag that was specific only to your registry.

Obviously it low-priority, but something to consider.

In most cases, when it comes to rapid prototyping, I’d say that without an LLM, this website would essentially be impossible to create, since the initial setup takes a lot of time, and I don’t have that much time to spare.

When I have an idea, I first create a prototype using LLM, and then I check to see if it matches what I envisioned in my head. If it does, I refine it by hand until it’s the final version; if not, I delete it.

P.S. This is not a Vibe Code project :slight_smile:

2 Likes

Thank you for your feedback it really motivates me to keep working on this.

I’ve tried not to create a “zoo” of tags, but if the community is interested, I’ll add support for the zigpkg tag in the next release.

1 Like

you published it on SourceForge? I’m asking because it support only github, codeberg.

Something that irks about these projects is that they restrict would be publishers to specific platforms. It is usually just GitHub, so thus including Codeberg is an improvement. However I host my stuff on neither platform (for unrelated-to-this-topic reasons)., and I feel I get left out every time something like this comes out.

There are plenty of forges (SourceHut, Tangled, Radicle, Gitlab, SourceForge, whatever jj people are cooking up) , and forcing some sort of monoculture is .. not healthy, maybe?, I dunno what the solution is, tbh.

Edit: maybe something like a lib.rs/crates.io mix that just links to the package’s git repos and someone can register if they want in, maybe?

1 Like

People generally prefer open platforms because they allow you to inspect the source code in a browser for suspicious dependencies; for this reason, the project operates in read-only mode to avoid issues with compromised packages, as has happened several times with npm.

Nothing you said has anything to do with anything I said.

You mean package creators would publish the package instead of it being added automatically by scraping github, codeberg, etc?

Or even being able to point to a git repo url and fetching that? (like what golang has with pkg.go.dev)