Corrade

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

Cor­rade is a mul­ti­plat­form util­ity lib­rary writ­ten in C++11/C++14. It’s used as a base for the Mag­num graph­ics en­gine, among oth­er things.

Supported platforms

See the Build Status page for de­tailed per-plat­form build status.

Features

  • Low-level util­it­ies to bridge plat­form dif­fer­ences when ac­cess­ing OS func­tion­al­ity, filesys­tem, con­sole and en­vir­on­ment
  • Light­weight con­tain­er im­ple­ment­a­tions, com­ple­ment­ing STL fea­tures with fo­cus on com­pil­a­tion speed, ease of use and per­form­ance
  • Test frame­work em­phas­iz­ing flex­ib­il­ity, ex­tens­ib­il­ity, min­im­al use of mac­ros and clar­ity of dia­gnost­ic out­put
  • Plu­gin man­age­ment lib­rary with stat­ic and dy­nam­ic plu­gins, de­pend­ency hand­ling and hot code re­load
  • Sig­nal/slot con­nec­tion lib­rary with full type safety

Check also the Fea­ture Over­view pages for fur­ther in­form­a­tion.

Documentation, getting started

Head over to the doc­u­ment­a­tion for build­ing in­struc­tions. The best way to get star­ted is to read some ex­amples and tu­tori­als.

License

Cor­rade is li­censed un­der the MIT/Ex­pat li­cense:

Copy­right © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Vladimír Von­druš <mosra@centrum.cz> and con­trib­ut­ors

Per­mis­sion is hereby gran­ted, free of charge, to any per­son ob­tain­ing a copy of this soft­ware and as­so­ci­ated doc­u­ment­a­tion files (the “Soft­ware”), to deal in the Soft­ware without re­stric­tion, in­clud­ing without lim­it­a­tion the rights to use, copy, modi­fy, merge, pub­lish, dis­trib­ute, sub­li­cense, and/or sell cop­ies of the Soft­ware, and to per­mit per­sons to whom the Soft­ware is fur­nished to do so, sub­ject to the fol­low­ing con­di­tions:

The above copy­right no­tice and this per­mis­sion no­tice shall be in­cluded in all cop­ies or sub­stan­tial por­tions of the Soft­ware.

THE SOFT­WARE IS PROVIDED “AS IS”, WITHOUT WAR­RANTY OF ANY KIND, EX­PRESS OR IM­PLIED, IN­CLUD­ING BUT NOT LIM­ITED TO THE WAR­RANTIES OF MER­CHANT­AB­IL­ITY, FIT­NESS FOR A PAR­TIC­U­LAR PUR­POSE AND NON­IN­FRINGE­MENT. IN NO EVENT SHALL THE AU­THORS OR COPY­RIGHT HOLD­ERS BE LI­ABLE FOR ANY CLAIM, DAM­AGES OR OTH­ER LI­AB­IL­ITY, WHETH­ER IN AN AC­TION OF CON­TRACT, TORT OR OTH­ER­WISE, ARISING FROM, OUT OF OR IN CON­NEC­TION WITH THE SOFT­WARE OR THE USE OR OTH­ER DEAL­INGS IN THE SOFT­WARE.

All Cor­rade ex­ample code is put in­to pub­lic do­main (or UN­LI­CENSE) to free you from any leg­al obstacles when re­using the code in your pro­jects:

This is free and un­en­cumbered soft­ware re­leased in­to the pub­lic do­main.

Any­one is free to copy, modi­fy, pub­lish, use, com­pile, sell, or dis­trib­ute this soft­ware, either in source code form or as a com­piled bin­ary, for any pur­pose, com­mer­cial or non-com­mer­cial, and by any means.

In jur­is­dic­tions that re­cog­nize copy­right laws, the au­thor or au­thors of this soft­ware ded­ic­ate any and all copy­right in­terest in the soft­ware to the pub­lic do­main. We make this ded­ic­a­tion for the be­ne­fit of the pub­lic at large and to the det­ri­ment of our heirs and suc­cessors. We in­tend this ded­ic­a­tion to be an overt act of re­lin­quish­ment in per­petu­ity of all present and fu­ture rights to this soft­ware un­der copy­right law.

THE SOFT­WARE IS PROVIDED “AS IS”, WITHOUT WAR­RANTY OF ANY KIND, EX­PRESS OR IM­PLIED, IN­CLUD­ING BUT NOT LIM­ITED TO THE WAR­RANTIES OF MER­CHANT­AB­IL­ITY, FIT­NESS FOR A PAR­TIC­U­LAR PUR­POSE AND NON­IN­FRINGE­MENT. IN NO EVENT SHALL THE AU­THORS BE LI­ABLE FOR ANY CLAIM, DAM­AGES OR OTH­ER LI­AB­IL­ITY, WHETH­ER IN AN AC­TION OF CON­TRACT, TORT OR OTH­ER­WISE, ARISING FROM, OUT OF OR IN CON­NEC­TION WITH THE SOFT­WARE OR THE USE OR OTH­ER DEAL­INGS IN THE SOFT­WARE.

For more in­form­a­tion, please refer to <https://unlicense.org/>

Some Cor­rade lib­rar­ies, plu­gins and ex­ecut­ables de­pend on third-party soft­ware. A full list to­geth­er with li­cense info is main­tained in the doc­u­ment­a­tion. There’s also a de­tailed info about con­trib­ut­ors.