libDocset

Fast and simple to use C++ library to handle docset bundles.
 
As a developer working from tiny embedded devices up to scalable web application somewhere in the cloud, I often have to read documentation during the development process. Mostly this was rather a pain rather than a pleasure until I found a tool called Dash. Dash searches so called docsets for given keywords and opens the corresponding HTML pages of the documentation instantly. The number of available docsets is increasing very fast and I could not work anymore without this gem. But sometimes I have to, as Dash is OS X exclusive.
 
This was the primary motivation in order to start to develop my very own offline documentation browser called DocR, which should run on OS X, Linux and Windows. It is in a very early stage of development, but the core of the application actually handling docsets works already quite good and pretty fast. I decided to make the docset-handling library open source in order to give the open source community something back for the incredible amount of open source software I use and love.
 
The API of the library is pretty simple to use:
Scan a folder for docsets:

DocsetGroup myDocsets = DocsetGroup::open("/home/me/Docsets", true);

 
And you can start searching already in the docsets:

DocsetObjectList obs = myDocsets.find("std::cout");
for (auto o: obs)
    std::cout << o.name() << "\n";

 
Currently the library runs on Linux and OS X, Windows support is planned, but not yet implemented.
 
Source code and build instructions are available on github