Welcome to the CMLabs CoreLibrary



The CMLabs CoreLibrary is a multiplatform object library for C++ (Linux, Win32, MacOSX, PocketPC). It provides many of the common objects found in Java (Strings, Threads, Collections, etc.) and has the ability to send objects across the network like CORBA.


On this site you will find information about the CoreLibrary and how to use it. The links below will guide you to the documentation including how the objects in the CoreLibrary can convert themselves to and from XML, the full Doxygen documentation of every source file and some handy examples to get you started.





            The CoreLibrary is intended for C++ to be what the basic object classes are for Java. Every object is an Object and inherits a standard API from the Object class, such as print(), toXML(), fromXML(), wait(), and many more.


There are a great number of classes available from the CoreLibrary and this number is expected to grow as the project is used by more and more people. It contains most of the basic useful objects already, such as String, Time, Collections, Threads (Win32/Linux/Unix/MacOSX), Semaphores, Mutexes and an advanced set of networking classes for acting both as client and server for any number of protocols including acting as a web server and telnet server.


The library is used in a number of projects:


  • The CAVIAR project (Context Aware Vision using Image-based Active Recognition) uses the CoreLibrary for CVML support (see CVML example).
  • Psyclone is a powerful platform for building modular, distributed systems and is fully based on the CoreLibrary for complete OS and architecture independence.
  • The C++ implementation of the AIR protocol is fully based on the CoreLibrary.


The CoreLibrary is created and maintained by: Communicative Machines





The CoreLibrary can be downloaded from the SourceForge project page at







The CoreLibrary Documentation and Examples


        Programming with the CoreLibrary

        Working with Strings

        Working with Collections

        Sorting with Collections

        Working with XML

        Working with Time

        Working with Timers

        Working with Files

        Working with Queues

        Working with Threads

        Working with Networking

        Working with DLLs and Shared Objects

        CVML Example

        Creating third party (your own) CoreLibrary objects


The CoreLibrary Documentation (Doxygen)



The CoreLibrary XML Specification