Welcome to Libsmart

Libsmart is a portable C++ system development library.

Libsmart is:

  • cross platform: supports MSVC 7.10, GCC3.x (Win32, Cygwin, Linux and Mac OS X)
  • reliable: We already used libsmart in projects ranging from Win32/Mac OS X consumer applications to Linux based embedded devices
  • modern: STL based, uses exceptions and is exception safe
  • smart: minimum component dependencies, uses templates (where appropriate), function overloading and code-generation

You will find the The Reference Documentation here.

If you would like to evaluate pre-beta versions (GPL), please contact us at team (at) libsmart.com

Libsmart’s namespaces:

  • smart

    • maybe type
    • error management using identifiable exceptions

  • smart::sys

    • synchronisation objects, timers, threads and processes
    • delegates/functors
    • getopt compatible command line parsing, high level C++ argument scanner
    • serial port support

  • smart::net
    • sockets, connection management, server components

  • smart::io

    • file path functions
    • directory functions
    • file IO

  • smart::util

    • smart pointer
    • string support functions (combining, splitting, conversions)
    • O(1) id generation and management

  • smart::xml

    • XML streams, structured XML output, C++ interface to expat, XML document tree

Libsmart’s development tools:

  • metatype: protocol specification language and code generator, supports the generation of type-safe discriminated unions, binary serializers and scheme meta-information
  • logging: module based logging streams specification language and code generator
  • xfront: developer-friendly XML frontend to write XML using ‘{’ and ‘}’ as tag delimiters, includes support for element aliases and combiners