Skip to content

gitGNU/gnu_libchop

Repository files navigation

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 <ludo@gnu.org>
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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published