on.php) , BSD, GPL  |   
[ LAME ](https://lame.sourceforge.io/using.php) |  LAME is a high quality MPEG Audio Layer III (MP3) encoder.  |  LGPL  |   
[ libsndfile ](http://www.mega-nerd.com/libsndfile) |  A C library with C++ wrapper for reading and writing files containing sampled sound (e.g. WAV, AIFF) through one standard library interface. ( [ Src ](https://github.com/erikd/libsndfile/) )  |  LGPL-2.1  |  cmake, make, vcpkg   
[ minimp3 ](https://github.com/lieff/minimp3) |  Minimalistic MP3 decoder  |  [ CC0-1.0 ](https://github.com/lieff/minimp3#CC0-1.0-1-ov-file) |  header-only   
[ Opus ](http://opus-codec.org/) |  A totally open, royalty-free, highly versatile audio codec.  |  BSD  |  cmake   
[ Vorbis ](http://xiph.org/vorbis/) |  Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format.  |  BSD  |  cmake   
  
Tagging

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ id3lib ](http://id3lib.sourceforge.net/) |  An open-source, cross-platform library for reading, writing, and manipulating ID3v1 and ID3v2 tags, and retrieving some basic mp3 header info like bitrate. However, we now recommend moving to [ taglib ](https://taglib.org/) :)  |  LGPL v2  |   
[ taglib ](https://taglib.org/) |  The TagLib Audio Metadata Library is a library for reading and editing the meta-data of several popular audio formats: ID3v1, ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files. ( [ Src ](https://github.com/taglib/taglib) )  |  [ LGPL ](https://www.gnu.org/licenses/lgpl.html) and [ MPL v1.1 ](https://www.mozilla.org/MPL/MPL-1.1.html) |   
  
##  [ [ edit ](/mwiki/index.php?title=cpp/links/libs&action=edit&section=4
"Edit section: Benchmarking") ]  Benchmarking

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ benchmark ](https://github.com/google/benchmark) |  A library to benchmark code snippets, similar to unit tests  |  Apache 2.0  |  cmake   
[ Celero ](https://github.com/DigitalInBlue/Celero) |  A feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11.  |  Apache  |  cmake   
[ Criterion ](https://github.com/p-ranav/criterion) |  A micro-benchmarking library for modern C++  |  MIT  |  header-only; cmake   
[ gperftools ](https://github.com/gperftools/gperftools) |  The 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization.  |  BSD 3-Clause "New" or "Revised"  |  configure   
[ nanobench ](https://nanobench.ankerl.com) |  A simple, fast, accurate single-header micro-benchmarking functionality for C++11/14/17/20. ( [ Src ](https://github.com/martinus/nanobench) )  |  MIT  |  header-only; cmake   
[ picobench ](https://github.com/iboB/picobench) |  A tiny (micro) micro-benchmarking library  |  MIT  |  header-only; cmake   
[ plf::nanotimer ](https://github.com/mattreecebentley/plf_nanotimer) |  A lowest-overhead, cross-platform simple timer class for benchmarking.  |  zlib  |  header-only   
  
##  [ [ edit ](/mwiki/index.php?title=cpp/links/libs&action=edit&section=5
"Edit section: Communication") ]  Communication

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ ACE ](https://www.dre.vanderbilt.edu/~schmidt/ACE.html) |  Asynchronous networking, event de-multiplexing, messaging ( [ Src ](https://github.com/DOCGroup/ACE_TAO) ) ( [ Doc ](https://www.dre.vanderbilt.edu/Doxygen/) )  |  [ Custom ](https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/COPYING) |  make   
[ Apache Thrift ](https://thrift.apache.org/) |  The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Has