Introducing Corrade, an plugin management and utility library

Orig­i­nal­ly de­vel­oped for Kom­pas, this li­brary pro­vides both stat­ic and dy­nam­ic plug­in man­age­ment with de­pen­den­cy sup­port and al­so var­i­ous filesys­tem, porta­bil­i­ty and de­bug­ging util­i­ties.

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

Features

  • Easy-to-use plug­in man­age­ment li­brary with sup­port for both stat­ic and dy­nam­ic plug­ins and al­so de­pen­den­cy han­dling
  • INI-style con­fig­u­ra­tion pars­er and writ­er with hi­er­ar­chic group sup­port
  • Class­es for easy de­bug/er­ror out­put with sup­port for print­ing out cus­tom types, in­spired with QDe­bug
  • Man­ag­er for re­sources com­piled di­rect­ly in­to ex­e­cuta­bles, filesys­tem, en­di­an­ness utilites and more
  • Writ­ten in pure C++ with no ex­ter­nal de­pen­den­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­vorite dis­tri­bu­tion, build from source or view doc­u­men­ta­tion at down­load page:

Future plans

Be­cause I use this li­brary in an­oth­er project (and that’s al­so why I split it from Kom­pas), many new fea­tures are planned, such as unit test­ing suite aim­ing to be more tai­lored for my needs than QtTest or C++11-on­ly fea­tures, such as easy print­ing of it­er­able con­tain­ers to de­bug out­put. This fea­ture is al­ready in ex­per­i­men­tal branch c++11 on GitHub.

Main fo­cus will be on sup­port for plug­ins writ­ten in oth­er lan­guages be­sides C++ (such as Ja­va or Python). This is al­so school project which I have to have done.

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