libjio 0.23 reviewDownload
libjio is a C library to do journaled, transaction-oriented I/O
libjio is a C library to do journaled, transaction-oriented I/O. libjio library provides a UNIX-like set of file operation functions (such as open, read, and write), which are wrapped in a transaction framework, so that file operations can be committed or rolled back as necessary. It is non-intrusive, atomic, and thread-safe, with fast crash recovery.
This allows the library to guarantee file integrity even after unexpected crashes, never leaving your files in an inconsistent state.
On the disk, the file you work on is exactly like a regular one, but a special directory is created to store in-flight transactions.
It's written in plain C, in less than 1500 lines of code, and has no dependencies on external libraries. It's based on the traditional POSIX API and follows the Single UNIX Specification, so it should be portable to all major UNIX variants without problems; however it's developed under Linux, so please let me know if you try it somewhere else.
You can also compile it with dietlibc or uClibc if you have space constraints, making it quite easy to include libjio in embedded applications. For instance, using the latter on i386 the final object size is about 9600 bytes.
It's open source, published under the Open Software License 2.0, so you can link the library with anything you want (even if it's propietary, GPLd, or whatever license you choose; pretty much like LGPL).
What's New in This Release:
This relaese fixes a file descriptor leak in read-only access, as well as compilation issues.
libjio 0.23 keywords