Why Minlib?
or, Why not just use calibre?
Minlib's only real competitor is calibre. Calibre has a number of shortcomings when compared to minlib:
- Speed. Calibre is an enormous application (over sixty megabytes even in its smaller versions, according to Wikipedia), and it is written primarily in Python. While Python is annoying to me for many reasons (not least of all that absurd white-space critical rule, where tabs are different from an equivalent number of spaces), it's also rather slow for larger applications, and calibre (despite having bits in C++) shows this. Minlib, on the other hand, is very fast, being written entirely in C.
- Size. As mentioned above, calibre is huge. Minlib, on the other hand, weighs in at under one hundred K.
- Calibre is pretty fascistic; as far as calibre is
concerned, it knows what to do, and you don't.
For example, calibre requires that you store your books in
its way, not your way. Consider the question in
the FAQ:
The whole point of calibre's library management features is that they provide a search and sort based interface for locating books that is much more efficient than any possible directory scheme you could come up with for your collection. Indeed, once you become comfortable using calibre's interface to find, sort and browse your collection, you wont [sic] ever feel the need to hunt through the files on your disk to find a book again.
In other words, "I know how you should be storing your library; you don't. Your way is no good; my way is the One True Way. If you don't like this way, you just aren't trying hard enough." I don't agree with this way of looking at things; this is one of the major reasons I decided I needed to write minlib, for my own purposes if for no one else's.
So minlib tries to take the opposite tack: it's written in a fast language, it's quite small, and it lets you store your media wherever and however you like. Minlib assumes that you know what you're doing and works around you; it doesn't assume that you don't, and force you to work the way it wants.