Projects / KLone


KLone is a fully-featured, multi-platform framework which allows dynamic Web pages to be written in C/C++ (with the usual <% /* code */ %> style). The pages can then be embedded (in compressed and/or encrypted form) into a single executable that also contains KLone's high-performance HTTP/S server. Given its nature, it can be linked natively to any C/C++ library (database, XML, graphics, etc.), without an intermediate layer, and it is especially suited for low-resource (embedded) systems.

Operating Systems

RSS Recent releases

  •  23 Jan 2012 23:12

Release Notes: IPv6, SCTP, and Unix IPC support. A new server loop hook. A bug in memory session configuration that prevented use of default has been fixed. A multipart/form-data bug that could result in hanging connection on file upload has been fixed. Bad buffer length in http_is_valid_uri() has been fixed. Building when fork(2) is missing, as in uClinux, has been fixed.

  •  09 May 2011 14:47

Release Notes: CyaSSL support was added for handling HTTPS, embedded resource encryption, and client-side sessions. The session_set_cipher_key() interface was added, which simplifies embedded content decryption key setting from within .kl1 scripts. A few miscellaneous fixes were made; for example, the size estimate computation algorithm for encrypted session was fixed; a missing newline was fixed in generated source code, which could result in unexpected run-time behavior; a wrong timeout value recalculation on EINTR in included libu::u_connect was fixed.

  •  13 Dec 2010 13:27

Release Notes: An intensive timer usage bug, error page redirection parameters, and session handling on 64-bit platforms were fixed. New features include the ability to natively encode and decode JSON objects, brand new utility modules (BST, priority queues, ring buffer, simplified networking and hash tables) as a result of the merge with LibU 2, and new ports for OpenSolaris, Minix 3, and QNX 6.5.0.

  •  28 Oct 2009 15:35

    Release Notes: URL encoded variables are parsed also when Content-Length is 0 on POSTs. The "temp_dir" configuration variable was added to override the system default temporary directory (as used by L_tmpnam, TMPDIR, and friends). The "klone_sid" configuration variable was added to override the default cookie name. An HTTPS fix was made. session_get_id() was added to retrieve a given session id string. The request_get_uploaded_file() prototype was fixed, as the suggested buffer size was wrong and could lead to overruns. The "-n" command line switch to was added kloned to keep it from using chdir(2) when becoming a daemon. A build problem with Ubuntu 9 and NetBSD was fixed.

    •  06 Mar 2009 18:35

    Release Notes: A new regex-based URL dispatching module, dynamic page inheritance, and a few minor bugfixes and optimizations.


    Project Spotlight


    A unit test facility for command line programs with file input and output.


    Project Spotlight


    A multi-core programming framework.