diff --git a/README.rst b/README.rst index e69de29..e40e8ee 100644 --- a/README.rst +++ b/README.rst @@ -0,0 +1,46 @@ +Bunker -- An encrypted data store for Python +******************************************** + +.. contents:: + +Basic Design +============ + +``bunker`` is based on the excessive use of ``tarfile`` and +AES encryption. ``bunker`` stores its data in bunker-files +which are tar archives containing both some meta data +(currently unencrypted, is on the TODO list) and encrypted +files containing the actual data. + +Basic API +========= + +The main class used for accessing data stored in the bunker +file is the class ``bunker.bunker.Bunker``. It can be used +to create new bunkers and open existing bunkers. Both is +done using the classmethod +``bunker.bunker.Bunker.open(path)``. One can then add new +components (like a `Key Value Store`_) using the method +``add_component`` that will return an open component of +a given type. Using the method ``get_component`` one can +open an existing component. + +The components bring various methods to modify the data, +changes are written to the bunker by using either the method +``component.write_back`` or ``component.close`` the latter +will also bring the component in a state where it cannot be +used anymore (and delete all sensitive data). + +``bunker.bunker.Bunker`` can also be used as a context. All +open components will be closed automatically when the +context is left, ensuring that no sensitive data is left on +the disk/in memory. + +Supported Data Stores +===================== + +Key Value Stores +---------------- + +One can store data in key value stores. Those are based on +``ljson.slapdash`` tables and work with several data types.