-
-
Notifications
You must be signed in to change notification settings - Fork 132
Dependencies
Librum tries to have as few dependencies as possible while also keeping them up to date. Librum currently relies on four libraries:
- Qt 6.5
- boost-ext::di
- rapidfuzz-cpp
- mupdf
- googletest
All dependencies (except Qt6) are build from source (see libs folder) and compiled directly into the application to avoid any cross platform compatibility issues.
Librum uses Qt6 all over the application for e.g.:
- The GUI
- More types with higher abstractions (e.g. QDateTime, QString, ...)
- Communication across classes and layers via signals and slots
Librum uses dependency injection in order to archive an easier testable and less coupled system, therefor it uses the dependency injection library boost-ext::di. It simplifies construction of dependencies, thus making the actual injection much less painful.
To be able to sort libraries of books by query strings, Librum uses rapidfuzz-cpp. This library provides an easy interface to Levenshtein calculations that Librum uses to sort books by similarity (Fuzz searching).
Librum uses mupdf to render, edit, annotate and transform pages. It is a very fast, cross platform rendering library that makes it possible for Librum to display books.
As a testing framework, Librum uses googletest (and googlemock).