Blog

If it quacks like ...

I guess many know the saying If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck. In our industry things get advertised to be simple, without feature bloat, ... but upon closer look you find out they are far from simple, implement half backed features you can provide by using established infrastructure projects (seriously who really runs his web-apps without an nginx in front of it?), ... . I ran into this lately when I searched for a replacement for nexus to publish our artifacts hosted at maven.bestsolution.at. We just need something dead simple (yet a bit more feature rich than seeseekey.net) but all those alternatives we found looked like a duck, swam like a duck and quacked like a duck, but upon closer look are not a duck. The feature set we looked for:

  • must use the filesystem to store stuff in directories and files (unlike nexus)
  • must provide https endpoint
  • must deny overwriting released artifacts
  • simple directory browser (similar to the nginx directory page)

Features we don't require:

  • User management
  • Administration UI
  • Authentification
  • ...

After having struggled a few days with alternatives - even looking into the sources of one alternative to see if I can fix problems caused by implementing features a dead simple maven-repo does not require - I fired up code.quarkus.io to generate me a project named "quak - The dumbest maven repository manager with the minimal feature-set required (by us)". Do I suffer from the NIH-Syndrom? Sure like most of us! But at least I first tried to find a duck but all of them turned out to be everything else but a duck. Bildschirmfoto 2022-03-15 um 18.28.48 Interested in the source, I doubt we can build a businessmodel around ~100 LoC, so I pushed it to github.com Finally if you:

  • think it should be named quack - well in german it is "quak" beside that it maps nicer to quarkus (the framework we build all our microservices, moduliths, ... on)
  • found a bug in my code: File a ticket at github.com.
  • miss a feature who is a must-have for a duck: File a ticket at github.com and provide a PR - no guarantee I'll pick it up
  • think the frontend needs more JS: Fork the project and add it to your fork
  • miss a super cool extraordinary amazing feature: Fork the project and add it to your fork
  • ... - i guess you get the idea :-)
published on
Previous
Java Split Packages