CaLi   Generic Computational Buffers Library

Current Release: 4.1 dp1

Development Frozen!

The further development of the library has been frozen. We hope to use experience gathered in this project to reimplement CaLi in the form of new framework for large scale distributed caching.


CaLi 4.1 DP1 released (20.01.2005)

Preview of CaLi 4.1 available.
New model of CacheCommunicator has been implemented (thanks to Piotr Kopta).


For a long time caching has been used to improve efficiency of various software and hardware systems. Today, cache applications include hardware, Internet with web-caching and P2P networks, databases and complex computational systems. CaLi library (or caching library) has been designed as a C++ framework which allows to build any type of local or distributed cache.

Basic concepts

The CaLi library has been developed as a strictly scientific project with a high quality implementation. The main idea behind CaLi is to provide a set of basic concepts and models which next can be used to implement complex cache systems. The main assumption of the project is to provide high flexibility at the same time preserving high efficiency. In the current release the library provides interface to implement both, local and distributed cache systems.

Compiler status

The CaLi library relays on many C++ features such as templates and it strongly uses a C++ Standard Library. It is fully ANSI/ISO C++ compliant and it should work with any standard conforming compiler. However, thread support can be utilized only if POSIX threads implementation and thread-safe Standard Library are available.

The library has been successfully tested and reported to work with following compilers:
  • gcc 3.x
  • Intel C++ >= 5.0
  • MIPSPro C++ 7.4
  • Comeau C++, 4.3.3
  • M$VC 7.1 (thanks to Andrzej Grosser)
  • Support

    If you have any questions regarding CaLi or CaLi related work, do not hesitate to contact us.
    Any kind of feedback will be greatly welcomed.


    The latest CaLi version is 4.1 DP 1
    File Size [B] MD5 sum

    To compile the library you will need Jam/MR build tool (version newer than 2.3). It can be downloaded from

    To use mpi2_comm communicator you have to provide MPI-2 implementation supporting MPI_THREAD_MULTIPLE model. For example, MPICH2 or OpenMPI.

    The most up to date source code of the library can be found in the svn repository of ICIS (authorization required).

    Last update 01.01.2006