Introducing Corrade, a plugin management and utility library

Ori­gin­ally de­veloped for Kom­pas, this lib­rary provides both stat­ic and dy­nam­ic plu­gin man­age­ment with de­pend­ency sup­port and also vari­ous filesys­tem, port­ab­il­ity and de­bug­ging util­it­ies.

cor­rade (v.) — “To scrape to­geth­er, to gath­er to­geth­er from vari­ous sources”

Features

  • Easy-to-use plu­gin man­age­ment lib­rary with sup­port for both stat­ic and dy­nam­ic plu­gins and also de­pend­ency hand­ling
  • INI-style con­fig­ur­a­tion pars­er and writer with hier­arch­ic group sup­port
  • Classes for easy de­bug/er­ror out­put with sup­port for print­ing out cus­tom types, in­spired with QDe­bug
  • Man­ager for re­sources com­piled dir­ectly in­to ex­ecut­ables, filesys­tem, en­di­an­ness utilites and more
  • Writ­ten in pure C++ with no ex­tern­al de­pend­en­cies, us­ing CMake build sys­tem
  • Strong code cov­er­age with unit tests

Get Corrade

Cur­rent ver­sion is 0.2 (pre­vi­ous ver­sion 0.1 was part of Kom­pas), you can down­load pack­ages for your fa­vor­ite dis­tri­bu­tion, build from source or view doc­u­ment­a­tion at down­load page:

Future plans

Be­cause I use this lib­rary in an­oth­er pro­ject (and that’s also why I split it from Kom­pas), many new fea­tures are planned, such as unit test­ing suite aim­ing to be more tailored for my needs than Qt­Test or C++11-only fea­tures, such as easy print­ing of it­er­able con­tain­ers to de­bug out­put. This fea­ture is already in ex­per­i­ment­al branch c++11 on Git­Hub.

Main fo­cus will be on sup­port for plu­gins writ­ten in oth­er lan­guages be­sides C++ (such as Java or Py­thon). This is also school pro­ject which I have to have done.

Speak­ing of Kom­pas, next ver­sion will de­pend on this lib­rary and it will be re­leased soon (read: in less than a year, as I’m cur­rently hav­ing some prob­lems with Win­dows build).