Keeper - a configuration storage and retrieval library
General
What is Keeper
The keeper library gives an extremely simple interface for reading and
writing configuration data. For example to save and restore the
settings in a program. Data is stored in multiple text files, in a
hierarchical system.
Keeper is (C) under the GNU LGPL (see the file COPYING).
Latest versions
Stable version: 1.0
Development version: -
Features
- Simple to use C interface
- Configuration is stored in text-files
- Standalone, no dependency to other libraries
- Multi-thread safe implementation
- Comes with a command line based, and a GTK based database
manipulation program
- Fast operation with cached data
- Per user, per host and global configurations
- Ability to store private and public data
Plans for the future
- Win32 portability: keeper interface to the Windows registry
- Integration with glib
- Bindings for other languages (Java, etc...)
Example
Storing a value needs 2 function calls, retrieving a
value needs 1 function call. It is simple, isn't it? Here is one
example:
#include <keeper.h>
void set_value()
{
char *value = "Hello";
kp_set_string("u/testdir/testprog:/abc", value);
kp_flush();
}
void get_value()
{
char *value = NULL;
kp_get_string("u/testdir/testprog:/abc", &value);
...
}
Documentation
The documentation is in the form of man pages, which can also be
viewed here:
kptool(1)
keeper(3)
kp_base(3)
kp_utils(3)
(Released: 23. February, 2000)
Version 1.0 of keeper is finally here. I've tested it rather
extensively, so hopefully no bugs are left in it.
Download
What's new from 0.99 to 1.0
- Gkeeper, a GTK based front-end for the keeper database is now
usable, and is installed by default if GTK is available.
- Keeper can now store private data, only readable to the user.
- New utility function kp_recursive_do()
- Minor bugs fixed.
- Small database file format change. This change is backward
compatible.
- Debian packages.
For a full list of changes, see the ChangeLog
file.
If you have questions don't hesitate to mail me at:
mszeredi@inf.bme.hu