Proven best open-source portable C++ libraries

There was always a problem with C++ as its standard library is very limited. For example whenever application you develop is going to use a graphic user interfejs or automatic memory management or network or multithreading or portable and sophisticated filesystem and dates support, you have to choose a third-party library.

This choise is very important – it’s like an investition. You bind to a code created by someone else, you change your project to fit to the choosen library. There is a cost: the work you do to make it work together. And there is a risk: if the library fails in a some way, your project fails. Switching to an alternative library can cost much. Like a bad investition.

Here I list of open-source portable C++ libraries I have used and I consider proven and best. By “portable” I mean a library which allows to be build and used under Linux and Windows.

  • Boost: In fact it’s a collection of libraries that are likely to be included to C++ standard library some day. Most useful for me are:
    1. Smart Ptrmandatory! – smart pointer class templates.
    2. Serialization – overbloated (its stack-traces has often over 40 levels of calls), but unfortunately there is no alternative for serialization problem for C++
    3. Thread – portable C++ multi-threading
    4. Filesystem – portable facilities to query and manipulate paths, files, and directories
    5. Iostreams – a framework for defining streams, stream buffers and i/o filters cooperating with standard iostream framework
    6. Integer – type definitions for integers of given size, for example: uint16_t.
  • wxWidgets: crossplatform library for GUI and other services (networking, threading, files, etc.), free for commercial usage too
  • Qt: alternative to the above, commercial usage requires a payment
  • gSOAP: great library for interoperable RPC based on web-services, proved to communicate with Java web-services implementation
  • Newmat: simple but useful library for matrix operation. I choose it after a long comparision of other alternatives and used some years ago in my master thesis project

About krzysztoftomaszewski

I've got M.Sc. in software engineering. I graduated in 2005 at Institute of Computer Science, Warsaw University of Technology, Faculty of Electronics and Information Technology. I'm working on computer software design and engineering continuously since 2004.
This entry was posted in C++. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s