Docs.rs
  • git-odb-0.15.0
    • git-odb 0.15.0
    • Docs.rs crate page
    • MIT/Apache-2.0
    • Links
    • Repository
    • crates.io
    • Source
    • Owners
    • Byron
    • Dependencies
      • btoi ^0.4.2 normal
      • byteorder ^1.2.3 normal
      • bytesize ^1.0.1 normal
      • filebuffer ^0.4.0 normal
      • flate2 ^1.0.17 normal
      • git-features ^0.14.0 normal
      • git-hash ^0.3.0 normal
      • git-object ^0.9.0 normal
      • itoa ^0.4.6 normal
      • memory-lru ^0.1.0 normal
      • parking_lot ^0.11.0 normal
      • serde ^1.0.114 normal
      • smallvec ^1.3.0 normal
      • tempfile ^3.1.0 normal
      • thiserror ^1.0.20 normal
      • uluru ^2.0.0 normal
      • bstr ^0.2.13 dev
      • common_macros ^0.1.1 dev
      • git-testtools ^0.1 dev
      • hex ^0.4.2 dev
      • pretty_assertions ^0.7.1 dev
    • Versions
    • 100% of the crate is documented
  • Go to latest version
  • Platform
    • i686-unknown-linux-gnu
    • x86_64-unknown-linux-gnu
  • Feature flags
  • docs.rs
    • About docs.rs
    • Privacy policy
  • Rust
    • Rust website
    • The Book
    • Standard Library API Reference
    • Rust by Example
    • The Cargo Guide
    • Clippy Documentation
☰
logo

Crate git_odb

Version 0.15.0

See all git_odb's items

  • Re-exports
  • Modules
  • Structs
  • Traits
  • Functions

Change settings

Crate git_odb[−][src]

[−] Expand description

Git stores all of its data as Objects, which are nothing more than data 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 database.

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

  • loose::Db
    • 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
  • pack::Bundle
    • A database storing multiple objects within an indexed pack file, reaching compression ratios of 60 to 1 or more.
    • Slow writes and fast reads
  • compound::Db
    • A database using a loose::Db for writes and multiple pack::Bundles for object reading. It can also refer to multiple additional compound::Db 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::Db
    • A database containing various compound::Dbs as gathered from alternates files.

Re-exports

pub use find::Find;
pub use write::Write;

Modules

alternate

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

compound

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

data

Contains a borrowed Object bound to a buffer holding its decompressed data.

find
linked

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

loose

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

pack

Handle packs and pack indices

write

Structs

Sink

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

Traits

FindExt

An extension trait with convenience functions.

Functions

sink

Create a new Sink with compression disabled.

Results for FindExt

git_odb::FindExtAn extension trait with convenience functions. 
git_odb::find::FindExtAn extension trait with convenience functions. 
git_odb::pack::indexan index into the pack file 
git_odb::pack::Bundle::indexThe index file corresponding to pack 
git_odb::pack::bundle::Bundle::indexThe index file corresponding to pack 
git_odb::pack::bundle::write::Outcome::indexThe successful result of the index write operation 
git_odb::pack::bundle::Error::Index 
No results :(
Try on DuckDuckGo?

Or try looking in one of these:
  • The Rust Reference for technical details about the language.
  • Rust By Example for expository code examples.
  • The Rust Book for introductions to language features and the language itself.
  • Docs.rs for documentation of crates released on crates.io.
No results :(
Try on DuckDuckGo?

Or try looking in one of these:
  • The Rust Reference for technical details about the language.
  • Rust By Example for expository code examples.
  • The Rust Book for introductions to language features and the language itself.
  • Docs.rs for documentation of crates released on crates.io.