What sets Minum apart
Yet another minimalistic framework. Why should people pick you...
To those programmers who yearn for minimalism, and think well of Java, I would like to acquaint you to a framework I am maintaining, Minum, which has everything necessary to build a web application. It is based on a preference to spend extra time at the onset, to avoid common maintenance difficulties later.
A web application has typical components:
- A web server: for transmitting data using correct protocol
- Routing: for conveying data from the web to the business code and back
- A database: for persisting data in an organized way to disk
- Logging: to consistently generate runtime output
- Templating: Inserting data into outgoing documents, like HTML
- Testing: to test out parts of the program
- Background job processing, for work done outside requests
- HTML parsing - for testing and analyzing the HTML
Minum contains all these, without any third-party dependencies.
Some Java web frameworks refer to themselves using adjectives like lightweight, micro, minimalist, and simple. However, it is hard to find one that takes those ideas to their logical conclusion. Minum was written from scratch, guided by minimalism.
For those not yet on the minimalism train, you might be wondering what the value is.
A common situation when encountering difficulty with dependencies is to review the documentation (if it exists) or online forums. Barring that, it may be necessary to read the code, but that is easier said than done. It is often difficult to develop confidence when reading the code of a project that is hundreds of thousands of lines when you consider its dependencies.
Put another way, most of the so-called "minimalist" web frameworks are between 400,000 and 700,000 lines of code when you account for the lines of code of the dependencies necessary for a fully-fledged outcome, and that is being conservative - databases are routinely more than a million lines of code.
Imagine instead that all the code for those components was a total of four thousand lines of code. Then, if something misbehaves, there is a much higher likelihood you can find the issue.
Many large projects enter a period of high churn and poor quality once they get past their early days. Much of the focus in our industry right now is on techniques and technologies that give high returns at the onset, for a high maintenance cost later.
Great effort was put towards testing and documentation. It is possible to verify the system for yourself upon download from Github, merely by running "mvn test" - it should take less than 15 seconds.
An example of a larger-than-toy application is available for review here
Minum requires Java 21.