Artifact repository done simple.
Table of Contents
- The Name
At work, we use the JFrog Artifactory to deploy packages inhouse, and I really liked the system. But for my taste, it does way too much for my taste, also it’s proprietary software which is hard to self host.
But in the dawn of the Zig package manager, I needed a simple way to upload and share project bundles, and I created the Zartbitter artifact repository.
The name seems quite random, but it’s actually a simple associative chain that lead to it:
- The project was meant for Zig packages
- Zig Package Artifact Repository (ZPAR) didn’t really work well as a word
- Zig Artifacts? ZArtifacts? Zart!
- Zartbitter is the german word for bittersweet and mostly used in the context of chocolate, which kinda fits the context regarding Chocolatey
- Zartbitter it is.
Zartbitter is actually quite feature complete and ready to use, I just never uploaded any artifacts 🤦♂️.
A non-exhaustive feature list is:
- Artifacts are abstract files
- Each artifact can have any number of associated revisions
- Revisions are versioned and hashed files
- Artifacts can have metadata (key-value pairs) attached
- Upload of new revisions is secured by a symmetric secret pair (upload token)
- Access/download of artifacts can be restricted via access tokens
- Tokens may have a lifetime
- Revisions store their mime type
- Very simple PUT/GET based HTTP API