An open API service indexing awesome lists of open source software.

https://github.com/rootfs/libchop


https://github.com/rootfs/libchop

Last synced: 11 months ago
JSON representation

Awesome Lists containing this project

README

          

libchop
=======

Libchop is a file hashing, ciphering, and indexing library. In a
nutshell, libchop provides mechanisms to:

1. cut a file into pieces, store each of these blocks into a block
store, and return an "abstract index" containing all the
information necessary to retrieve the file;

2. restore (rebuild) a file based on an abstract index, reading
blocks from one (or several) block stores and decoding them
according to the methods specified by the abstract index.

It is particularly suitable for content-based indexing (as used by
many peer-to-peer file sharing systems, as well as several revision
control systems such as Monotone and Torvalds' GIT), and content-hash
ciphering (as used by anonymous file sharing systems such as GNUnet and
FreeNet).

libchop contains several implementations of the various operations
listed above (several block stores, several file cutting algorithm,
etc.). It is meant to be as flexible as possible while still retaining
performance.

The best way to experiment with libchop is to try out the
`chop-archiver' sample utility program available in the `utils'
directory.

Requirements
------------

Libchop primarily targets the GNU system (i.e. GNU C compiler and GNU C
library), although porting it to other systems shouldn't be too hard
(especially with the help of Gnulib).

Mandatory dependencies:

GNU gperf
GNU libgcrypt 1.2
Sun/ONC RPC framework
either from the GNU C Library <= 2.13
or TI-RPC

Optional dependencies:

GNU GDBM
libtdb
SleepyCat's Berkeley DB (BDB) 4.x (x >= 3)
zlib
libbz2
LZO >= 2.06

GnuTLS 1.4.1 (or compatible --- recommended)
Avahi 0.6 or later

If you want to build the Guile bindings of libchop, which are needed
for the `chop-backup' tool, you'll need the following:

GNU Guile 2.0.x (with x > 3)

If building from a fresh checkout:

GNU Autoconf 2.59
GNU Automake 1.11
GNU Libtool
GNU Gnulib

And that's it.

Copyright (C) 2010, 2011, 2012 Ludovic Courtès
Copyright (C) 2005, 2006, 2007 Centre National de la Recherche Scientifique (LAAS-CNRS)

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.