The release of MyLibrary 4.0 Home Library Organizer has taken place. The program's code is written in C++ and is available on GitHub and GitFlic under the GPLv3 license. The user interface is implemented using the GTK4 library. The program is adapted for use in Linux and Windows operating systems. For Arch Linux users, a ready-made build script is available in the AUR. Windows users have access to an experimental installer.
MyLibrary catalogs book files in fb2, epub, pdf, djvu formats, both available directly and packed in archives (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar) and creates its own database without modifying the original files or changing their locations. The integrity control of the collection and its changes is carried out by creating a database of file and archive hash sums.
The program implements book searching based on various criteria (author's last name, first name, patronymic, book title, series, genre) and reading through the program set as default in the system for opening the corresponding file formats. When selecting a book, a synopsis and cover are displayed if available. Support is provided for displaying the list of files in the collection; the list of books in a specific file; the list of authors in the collection; and the list of books for which the user has created notes.
Various operations with the collection are possible: updating (which includes checking the entire collection and verifying the hash sums of available files), quick updating (without recalculation of hash sums), exporting and importing the collection database, adding books to the collection and removing books from it, adding folders with books to the collection, adding archives with books to the collection, copying books from the collection to any folder, moving books from one collection to another. Manual editing of book records in the database is available. A bookmarking mechanism for quick access to books has been created. Users can create custom notes for books. An interface for creating and connecting plugins is optionally available. There is an option to open documentation for the MLBookProc and MLPluginIfc libraries (part of the project) if such documentation was created during the build process.
Significant changes:
- Functions for working with collections, bookmarks, and notes have been moved to a separate library MLBookProc (it can be used as a completely independent project).
- An optional interface for creating and connecting plugins (MLPluginIfc) has been added.

- Full support for multithreading based on OpenMP has been provided (two equivalent builds are available: based on OpenMP or based on std::thread).
- The performance of the OpenMP build has been improved (see README).
- CPU load balancing has been improved in the std::thread build.
- The ability to create custom notes for books has been added.

- A function to display the authors of the collection has been added.

- A function to display the books of the collection with custom notes has been added.
- The functions for parsing XML files have been revamped.
- Errors in handling books in the djvu format have been fixed.
- The ability to set the border color of Gtk::Frame widgets has been added (users who changed appearance settings need to manually add the entry "#MLFrame {border-color: black;}" to the file ~/ .config/MyLibrary/MLStyles.css, or delete this file and reconfigure the appearance from scratch).
- Documentation for the MLBookProc library has been created.

- Documentation for MLPluginIfc has been created.
- The build option USE_TBB has been removed (the tbb library is now linked automatically if required).
- Other minor changes and improvements.
Additionally, the release of the MLInpxPlugin has been noted. The plugin is designed for importing book collections from files in the "inpx" format and is available (altlinux.space, GitHub) under the GPLv3 license. A ready-made package build script has been placed in AUR for Arch Linux users. An experimental installer has been prepared for Windows users.
Source: opennet.ru




