Nav:  [home][lib] > [hlib]
Go:  [HLib] [download] [bugs]
← [What are these? Why?]


HLib is a library which may be useful for Unix/Linux C++ programmers who are operating on the system level (e.g. BSD socket layer). It provides a nice poll(2) model for simultanious access to any number of FDs and timers/timeouts, signal handling, etc. HLib is being developed by me (since 1999) and distributed under the GNU GPL.

Hot links: 
Download: Current version: 1.1.1 (2006-01-28)
Bugs: Report bugs in HLib.
Local:  [News] [Overwiew] [Features]


2006/01/28: Version 1.1.1
Minor changes to make hlib compile with recent versions of gcc.
2004/09/08: Version 1.1.0
New: class HLBtree, a B-tree template, notifier list and handler in notifierlist.h, a binary search template, class HLHeap, a heap template and a reference counting template called RefNode.
Changed: OrderedArray had API changes and a bugfix.
Note: HLib now can be installed using make install which will install the static library archive (libhlib.a) and all the headers (the latter in a hlib/ subdir).
2004/05/22: Version 1.0.0
New: lmalloc_failure_handler, compression code merged (libz, libbz2, PNG)
Fixed: incorrectly accepted options when leading dash is missing; now compiles cleanly with gcc-3.4; ProcessBase/ProcessManager::StartProcess() now takes pointers instead of references (sorry, gcc-3.4 issue).
Note: As of version 1.0.0, HLib is distributed completely under the GNU GPL.
2004/03/24: Version 0.9.9g
New: HexDump(), FD pump progress info
Improved Daemonize(), fixed incorrect assert() in FD copy facility, fixed stray chars in sindentcout.
Note that this is probably the last GPL/LGPL split release, 1.0 will likely be GPL only.
2004/03/15: Version 0.9.9f
A new template, CyclicDataRecorder, and minor new features (Daemonize(), HTime::MostCurr, RefString::vsprintf()) were added.
2004/02/28: Version 0.9.9e
Minor features added (e.g. alloc debugging code), fixed bug in RefStringHash.
2004/02/12: Version 0.9.9d
HLib now has its own pages on this site and is no longer shipped as pure supplement of RendView which makes heavy use of HLib.

Brief overview of HLib

Historically, HLib was designed as a set of classes which allow easy implementation of applications which deal with a lot of file descriptors in parallel (such as little net servers, etc.).

The primary design goals were, in this order:
Small size, performance, ease of use.
This means, that parts of HLib are not as easy to use than one may wish, so keep that in mind. (But for people who are used to the BSD socket layer this should not be a real problem :)

  • Nice poll(2) model for (synchronious) simultanious IO of any number of file descriptios, timers, timeouts and safe synchronious signal handling.
  • Staring of child processes and detailed information about their termination.
  • Allocation limitation and checking/debugging.
  • Command line arguments and parameter file handling, easy-to-use class for time representation, linked list template, and more small helpers.
  • Simple virtual interface to read gzip- and bzip2-compressed files as well as for PNG image reading and writing.

[home] [site map]
Valid HTML 4.01!
Copyright © 2004-2006 by Wolfgang Wieser
Last modified: 2006-01-28 00:47:04