StLib is library of basic classes for C++. It takes it's name from words SmallTalk LIBrary where the main inspiration for inheritance hierarchy and class interfaces was taken. The goal is to provide feature-rich but easy to use class library. It should also be possible to use it as replacement of STL library. Well, someday.

The library was written as a part of my job but was released as open-source under LGPL 2.0 license after discussion with employer.

Core library implements basic class hierarchy starting with root class Object. It includes collection classes (arrayed collections with automatic or forced size growth/shrink, hash tables, dictionaries), streams (textual or binary with possibility of line-end and text encoding convertions), basic I/O accessor for files and memory eficient string with internal Unicode representation. Also wrappers for simple types (64-bit integers and floats, unicode characters) and time/date manipulations are implemented. Library also features hierarchy of exceptions which inherit from Object class. These exceptions provide access to stack trace from time the exception was raised to simplify debugging.

Advanced libraries provide plugin interface (using library dynamic loading), network access (I/O accessor for sockets, IP address resolution), multithreaded environment, interprocess synchronization mechanisms (MessageQueue, semaphores, mutexes, consumer/producer mechanism), file names/directory manipulation and application model classes (console application, daemon) with command line arguments parsing and basic configuration handling.

Trying to follow extreme programming practices and test driven development guidelines, functionality of library is tested using CPPUnit framework.

StLib is known to compile and run on x86 Linux and x86 Solaris.