s11n is here to Save Our Data, man!
Project powered by:

s11n.net's "miscellaneous" libraries and apps

With the release of 0.9.0 libs11n was split up from one "monolithic" library into a set of smaller libraries. To ease installation they are distributed together with s11n, but they can also be downloaded individually from this page. Most of them are developed in conjunction with libs11n, and several of them play integral parts in that library. Not all of these libraries are used by libs11n, but this project has turned into the dumping-ground for most of my [publishable] C++ code, so those libs are also here. Note that i did not write all of these libs: a couple are forks of other standalone libs, none of which are in wide-enough distribution to rely on users having them already installed. Some others are simply wrappers around other peoples' code, e.g., zfstream is such a case.
Maintainer note: The libs mentioned below as being used by s11n are no longer required in s11n 1.1/1.2.

Available code:

For those marked with a "yes" in the "toc" column, you can get the toc build tools below. Some marked with "no" actually use toc, but come with their own copy (this applies normally to the larger trees, where the overhead of a toc copy isn't so huge in comparison to the source tree size).

Those with a "yes" in the "libs11n" column ship with libs11n, and those versions are, more often than not, the latest. Thus, if you have libs11n, you already have the libraries marked "yes" in that column.

Click the Name links to download the libraries. Click the "More info" links (not all libs have them) to get more details about a library.
NameNeeds toc?Incl. with libs11n?Notes
ncutilnonoOO wrapper for ncurses Windows and Panels. Based on Thomas Dickey's ncurses++, but more up-to-date.
dependencies: ncurses (is installed on most Unix systems)
More info...
tostringnoyesFunctions to "lexically cast" objects to/from strings.
name_typenoyesA set of utilities for giving consistent string names to classes.
phoenixnoyesA shared object provider and phoenixer.
More info...
lex_tnoyesA flexible "variant" type for lexically casting to and from Streamable Types.
sigslotnoyesA signals/slots template library.
More info...
zfstreamyesyesA mini-framework for adding compressed file streams support to applications. NOTE: contains some LGPL'd code.
dependencies: optionally libz and libbz2
stringutilyesyesGeneric utility functions/classes for working with std::strings.
dependencies: phoenix (sorry!)
acmeyesyesA set of utility classes and functions which don't have a better home.
dependencies: phoenix, tostring, stringutil
class_loaderyesyesA simple-to-use, non-intrusive classloading framework.
dependencies: phoenix
More info...
editlinenonoBSD-licensed replacement for GNU Readline :). Originally written by Christos Zoulas, this is a forked copy (explained on the editline page).
More info...
readline_cppyesnoAn OO interface to editline (see above) or GNU libreadline. Also works without these libs, but is then very limited in functionality. Comes with an s11n proxy to provide serialization support.
dependencies: optionally editline or GNU Readline
eshellyesnoA simple-to-use, simple-to-extend framework for writing shell-like applications.
dependencies: libs11n 1.0, optionally readline_cpp
More info...
sqlite3_serializernonoAn sqlite3-powered Serializer for s11n 1.2.
dependencies: libs11n 1.2
More info...
mysql_serializeryesnoA proof-of-concept MySQL-driven Serializer for s11n 1.0.
dependencies: libs11n 1.0
More info...
s11nbrowsernonoA Qt-based app for browsing s11n data.
dependencies: sigslot, libs11n, Qt 3.3.x
More info...

Build Tools ("toc")

Most of the above libs require s11n's standard build tools, called toc ("the other ./configure"), available from the downloads page. Since toc "evolves" pretty often, please use the toc tarball which was released on the date closest to the library you wish to build, to ensure the best chance of building. A reminder: The libs11n distribution comes with a copy of toc, and also includes most of the above libraries. That is, if you have the libs11n source tree, you may already have the latest s11n.net toc distribution.

To make toc available to the source trees do one of the following:
  • Unpack it directly into the library's source directory.
  • Unpack it to the directory you unpack the source tree to. i.e., if you unpack libs11n_stringutil-VERSION.tar.gz under ~/src then unpack toc under ~/src as well.
  • Set the environment variable TOC_HOME to the path where you extract toc. e.g., if you unpack toc to $HOME/toc, then set TOC_HOME=$HOME/toc.
Once any one of those are done the source trees which need toc will be able to find it.

For complete information about toc see it's home page. Note that the above download covers everything needed for building the above libraries, so you do not need to download the full toc distribution.


The majority of this code in released into the Public Domain. Some source code falls under other non-restrictive licenses, such as LGPL or BSD, as described in their source files. That said, some is distributed under the GNU GPL, and those are prominently marked as such.