Crate git_odb[][src]

Expand description

Git stores all of its data as Objects, which ata along with a hash over all data. Thus it’s an object store indexed by data with inherent deduplication: the same data will have the same hash, and thus occupy the same space within the store.

There are various flavours of object stores, all of which supporting iteration, reading and possibly writing.

  • loose::Store
    • A database storing one object per file, named by its hash, using zlib compression.
    • O(1) reads and writes, bound by IO operations per second
  • compound::Store
    • A database using a loose::Store for writes and multiple pack::Bundles for object reading. It can also refer to multiple additional compound::Store instances using git-alternates.
    • This is the database closely resembling the object database in a git repository, and probably what most people would want to use.
  • linked::Store
    • A database containing various compound::Stores as gathered from alternates files.


pub use git_pack as pack;


A file with directories of other git object databases to use when reading objects.

An object database delegating object access to multiple contained object databases with loose and packed objects.

a pack data file

An object database representing a list of compound databases commonly created using git alternates.

An object database storing each object in a zlib compressed file with its hash in the path


An object database equivalent to /dev/null, dropping all objects stored into it.


Describe how object can be located in an object store with built-in facilities to supports packs specifically.

An extension trait with convenience functions.

Describe the capability to write git objects into an object store.


Create a new Sink with compression disabled.