Docs.rs
  • git-pack-0.31.0
    • git-pack 0.31.0
    • Permalink
    • Docs.rs crate page
    • MIT/Apache-2.0
    • Links
    • Repository
    • crates.io
    • Source
    • Owners
    • Byron
    • Dependencies
      • bytesize ^1.0.1 normal
      • clru ^0.6.1 normal optional
      • dashmap ^5.1.0 normal
      • document-features ^0.2.0 normal optional
      • git-chunk ^0.4.2 normal
      • git-diff ^0.26.2 normal
      • git-features ^0.26.5 normal
      • git-hash ^0.10.3 normal
      • git-hashtable ^0.1.2 normal
      • git-object ^0.26.2 normal
      • git-path ^0.7.2 normal
      • git-traverse ^0.22.2 normal
      • memmap2 ^0.5.0 normal
      • parking_lot ^0.12.0 normal
      • serde ^1.0.114 normal optional
      • smallvec ^1.3.0 normal
      • thiserror ^1.0.26 normal
      • uluru ^3.0.0 normal optional
      • git-tempfile ^3.0.0 normal
    • Versions
    • 100% of the crate is documented
  • Platform
    • i686-pc-windows-msvc
    • i686-unknown-linux-gnu
    • x86_64-apple-darwin
    • x86_64-pc-windows-msvc
    • 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

Crate git_pack

git_pack0.31.0

  • All Items

Sections

  • Feature Flags

Crate Items

  • Modules
  • Structs
  • Traits

Crates

  • git_pack

Crate git_pack

Source
Expand description

Git stores all of its data as Objects, which are data along with a hash over all data. Storing objects efficiently is what git packs are concerned about.

Packs consist of data files and index files. The latter can be generated from a data file and make accessing objects within a pack feasible.

A Bundle conveniently combines a data pack alongside its index to allow finding objects or verifying the pack. Objects returned by .find(…) are objects which know their pack location in order to speed up various common operations like creating new packs from existing ones.

When traversing all objects in a pack, a delta tree acceleration structure can be built from pack data or an index in order to decompress packs in parallel and without any waste.

§Feature Flags

  • pack-cache-lru-static — Provide a fixed-size allocation-free LRU cache for packs. It’s useful if caching is desired while keeping the memory footprint for the LRU-cache itself low.
  • pack-cache-lru-dynamic — Provide a hash-map based LRU cache whose eviction is based a memory cap calculated from object data.
  • object-cache-dynamic — If set, select algorithms may additionally use a full-object cache which is queried before the pack itself.
  • serde1 — Data structures implement serde::Serialize and serde::Deserialize.
  • wasm — Make it possible to compile to the wasm32-unknown-unknown target.
  • document-features — If enabled, cargo doc will see feature documentation from this manifest.

Modules§

bundle
cache
data
a pack data file
find
index
an index into the pack file
multi_index
verify

Structs§

Bundle
A bundle of pack data and the corresponding pack index

Traits§

Find
Describe how object can be located in an object store with built-in facilities to supports packs specifically.
FindExt
An extension trait with convenience functions.

Results

Settings
Help
    trait
    git_pack::cache::Object
    A way of storing and retrieving entire objects to and from …
    module
    git_pack::cache::object
    Note
    function
    git_pack::data::output::count::objects
    Generate Counts from input objects with object expansion …
    module
    git_pack::data::output::count::objects
    struct field
    git_pack::data::input::Error::NotFound::object_id
    enum variant
    git_pack::find::existing_iter::Error::ObjectKind
    enum variant
    git_pack::find::existing_object::Error::ObjectKind
    method
    git_pack::data::File::object_hash
    The kind of hash we use internally.
    method
    git_pack::index::File::object_hash
    The kind of hash we assume
    method
    git_pack::multi_index::File::object_hash
    Returns the kind of hash function used for object ids …
    struct field
    git_pack::multi_index::write::Options::object_hash
    The kind of hash to use for objects and to expect in the …
    struct field
    git_pack::data::decode::entry::Outcome::object_size
    The total size of the decoded object.
    struct field
    git_pack::data::decode::header::Outcome::object_size
    The decompressed size of the object.
    struct field
    git_pack::data::output::entry::Kind::DeltaRef::object_index
    The absolute index to the object to serve as base. It’s …
    enum variant
    git_pack::index::verify::integrity::Error::ObjectDecode
    enum variant
    git_pack::multi_index::verify::integrity::ProgressId::ObjectOffsets
    The amount of objects whose offset has been checked.
    enum
    git_pack::data::output::count::objects::ObjectExpansion
    The way input objects are handled
    function
    git_pack::data::output::count::objects_unthreaded
    Like objects() but using a single thread only to mostly …
    enum variant
    git_pack::index::verify::integrity::Error::ObjectEncodeMismatch
    struct field
    git_pack::data::output::entry::iter_from_counts::Outcome::objects_copied_from_pack
    The amount of base or delta objects that could be copied …
    struct field
    git_pack::index::traverse::Statistics::objects_per_chain_length
    A mapping of the length of the chain to the amount of …
    method
    git_pack::data::File::num_objects
    The number of objects stored in this pack data file
    method
    git_pack::index::File::num_objects
    The amount of objects stored in the pack and index, as one …
    method
    git_pack::multi_index::File::num_objects
    Returns the total amount of objects available for lookup, …
    struct field
    git_pack::index::write::Outcome::num_objects
    The amount of objects that were verified, always the …
    method
    git_pack::Bundle::get_object_by_index
    Special-use function to get an object given an index …
    enum variant
    git_pack::index::traverse::Error::PackObjectMismatch
    enum variant
    git_pack::index::write::ProgressId::IndexObjects
    Counts the amount of objects that were index thus far.
    struct field
    git_pack::data::output::count::objects::Outcome::input_objects
    The amount of objects provided to start the iteration.
    struct field
    git_pack::data::output::count::objects::Outcome::total_objects
    The total amount of encountered objects. Should be …
    struct field
    git_pack::index::traverse::Statistics::total_object_size
    The amount of bytes occupied by all undeltified, …
    struct field
    git_pack::data::output::count::objects::Options::input_object_expansion
    The way input objects are handled
    enum variant
    git_pack::index::traverse::with_index::ProgressId::DecodedObjects
    The amount of objects which were decoded.
    enum variant
    git_pack::index::traverse::with_lookup::ProgressId::DecodedObjects
    The amount of objects which were decoded by brute-force.
    enum variant
    git_pack::index::write::ProgressId::ResolveObjects
    The amount of objects whose hashes were computed.
    struct field
    git_pack::data::output::count::objects::Outcome::decoded_objects
    The amount of fully decoded objects. These are the most …
    struct field
    git_pack::data::output::entry::iter_from_counts::Outcome::missing_objects
    The amount of objects that could not be located despite …
    module
    git_pack::find::existing_object
    struct field
    git_pack::data::output::count::objects::Outcome::expanded_objects
    The amount of objects that have been expanded from the …
    struct field
    git_pack::data::output::entry::iter_from_counts::Outcome::ref_delta_objects
    The amount of objects that ref to their base as ref-delta, …
    enum variant
    git_pack::multi_index::verify::integrity::Error::UnexpectedObjectCount
    enum variant
    git_pack::multi_index::init::Error::UnsupportedObjectHash
    enum variant
    git_pack::index::traverse::SafetyCheck::SkipFileAndObjectChecksumVerification
    All of the above, and also don’t perform any object …
    enum variant
    git_pack::index::traverse::SafetyCheck::SkipFileAndObjectChecksumVerificationAndNoAbortOnDecodeError
    All of the above, and only log object decode errors.
    struct
    git_pack::data::input::LookupRefDeltaObjectsIter
    An iterator to resolve thin packs on the fly.
    enum variant
    git_pack::data::output::entry::iter_from_counts::Mode::PackCopyAndBaseObjects
    Copy base objects and deltas from packs, while non-packed …
    enum variant
    git_pack::index::traverse::with_index::ProgressId::TreeFromOffsetsObjects
    Count the objects processed when building a cache tree …
    struct field
    git_pack::data::output::entry::iter_from_counts::Outcome::decoded_and_recompressed_objects
    The amount of fully decoded objects. These are the most …
    enum variant
    git_pack::index::write::Error::IteratorInvariantTooManyObjects
    trait method
    git_pack::cache::Object::put
    &mut Object, ObjectId, Kind, &[u8] -> ()
    Put the object going by id of kind with data into the …
    trait method
    git_pack::cache::Object::get
    &mut Object, &ObjectId, &mut Vec<u8> -> Option<Kind>
    Try to retrieve the object named id and place its data …
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.