What are some interesting C/C++ libraries to play around with? [closed]

I'm looking for a few new libraries and for C and C++. In the past most of the time I "accidently" stumbled across a few - and most of them found good use in projects I worked on.

Libraries should run on Mac OS X and Linux/POSIX and possibly on Windows.

  • Lua - A minimal and fast scripting engine for configuration files and basic application scripting.
  • V8 - A fast JavaScript by Google engine similar to WebKit's JavaScriptCore.
  • Cairo - A good graphcis library similar to QuickDraw/Quartz on Mac OS X.
  • ZBar - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value.
  • ZLib - A very compact compression library for data streams. Used zziblib and minizip, too.
  • DynaPDF - A easy-to-use PDF generation library.
  • libusb - A universal USB library which allows for portable access to USB devices (I used this to write a basic driver for a custom POS printer).
  • WebKit - This is a really nice one if you want to render HTML/Web contents and use it in applications to give your users a "richer" user experience.
  • Qt4 - The general purpose framework for all kinds of desktop (and possibly mobile) development. Spending a lot of my time with that - no idea how I could forget that. ;)

This should be marked community wiki. Please update if you have something interesting to add!

Thanks!


Update 1

I'm not looking for "productivity" libraries like Boost or STL. Instead I'm looking for "interesting new stuff" of random genres - be it graphics libraries, scripting libraries, network or even MOD/MIDI playing libraries. Sorry I didn't make that clear before.


Solution 1:

STL and Boost are musts.

SQLite provides a completely embedded, full-featured relational database in a few 100k that you can include right into your project. It's also a highly marketable skill because of its high presence (it's included in Mozilla Firefox as well as Android and iOS).

If you're interested in creating user interfaces, look into ncurses -- it's the library that was used to create many terminal user interfaces and can be very useful for creating games and shell utilities. Qt is a good GUI framework for C++.

If you're interested in graphics or creating games, consider SDL or OpenGL (or DirectX if you don't mind only working on Windows).

Of course, there are thousands of interesting libraries. It really depends on what you're interested in.

Solution 2:

If you're into Image processing etc, then OpenCV might be interesting to have a play around with.