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 https://maven.bestsolution.at/.

We just need something dead simple (yet a bit more feature rich than https://seeseekey.net/archive/123761/) 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 https://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 https://github.com/BestSolution-at/quak

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 https://github.com/BestSolution-at/quak/issues.
  • miss a feature who is a must-have for a duck: File a ticket at https://github.com/BestSolution-at/quak/issues 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 🙂
This entry was posted in Uncategorized and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.