Skip to content
Jan Klötzke edited this page Mar 17, 2011 · 9 revisions

Welcome to Hotchpotch, a new approach to file systems. Hotchpotch is intended to create a new model and reference implementation of file systems beyond the well known POSIX semantics. Its primary goal is to develop stable, cross platform APIs and showcase some nice applications that unleash the full potential of the new file system model.

What is Hotchpotch

Hotchpotch is a open source foundation to securely access, distribute, share and sync your data from everywhere. It is built on a purely distributed data model, will allow optional encryption and should be a perfect solution when you need your data on different devices in different locations.

Hotchpotch provides seamless file versioning and backup so that you will never loose any work you did. It builds on the fact that versioning and backup are two sides of the same coin. While versioning (or revision control) typically is meant for single documents the term backup is used for keeping snapshot versions of many documents on a separate volume. Hotchpotch combines both to a single, coherent solution. In fact it doesn’t even matter if the backup is in the cloud, on a network volume, on a local disk or all of them at once.

By going beyond POSIX file systems Hotchpotch allows you to annotate and organize the data how you like it. It supports arbitrary, non-hierarchical organization schemes with durable linking, even across volumes. Hotchpotch allows extensible annotation of files with tags, comments, ratings or any other user defined field.

Being distributed at its core Hotchpotch allows collaborating on shared files. They can be accessed and changed online and offline. People can work simultaneously on the same files, even while being disconnected from the shared drive and later merge their data if the file versions have diverged.

What it is not

Hotchpotch is neither of the following:

  • Ready for productive use (well, not yet).
  • Some kind of distributed rsync. Rsync synchronizes existing file systems while Hotchpotch is a new file system model.
  • A semantic desktop model. Hotchpotch could provide the persistence layer, though, but is currently missing a query language.
  • A new SCM / version control system.

Implementation architecture

The current reference implementation consists of a server written in Erlang and some GUI applications written in Python with PyQt4. See the following picture to get an impression on how Hotchpotch fits in a regular desktop stack:

integration.png

There’s a dedicated page describing the Server architecture. Applications could either be Hotchpotch-aware or native desktop applications which access the files through a virtual file system.

Further information

Clone this wiki locally