# Gitility v0.2.0 - Table of Contents

> Snapshot-first Git object queries for Elixir — bounded, cancellable, structured reads (tree, file, search, log, diff, blame) over pluggable object databases, no worktree or checkout required

## Pages

- [Gitility](readme.md)
- [Bundle format v1 (frozen)](bundle-v1.md)
- [Changelog](changelog.md)

## Modules

- [Gitility](Gitility.md): Snapshot-first Git object queries for Elixir.
- [Gitility.Blame](Gitility.Blame.md): A blame result: consecutive hunks, not one record per line.
- [Gitility.Blame.Hunk](Gitility.Blame.Hunk.md): One blame hunk: a consecutive run of final lines attributed to a single
commit.
- [Gitility.Bundle](Gitility.Bundle.md): Deterministic single-file, read-only Git repositories.
- [Gitility.Bundle.Format](Gitility.Bundle.Format.md): Pure encoder and strict positional parser for Gitility bundle format v1.
- [Gitility.Bundle.RangeBackend](Gitility.Bundle.RangeBackend.md): Byte-range backend over pack and index sections in one immutable bundle.
- [Gitility.Bundle.Receipt](Gitility.Bundle.Receipt.md): The deterministic publication summary returned by `Gitility.Bundle.write/2`.
- [Gitility.Bundle.RefBackend](Gitility.Bundle.RefBackend.md): Direct-reference backend backed by a pinned bundle TOC.
- [Gitility.ByteRange](Gitility.ByteRange.md): A byte range within one stored artifact, addressed by its storage key
(a `pack_key`/`index_key` from a `Gitility.PackDescriptor`).
- [Gitility.Commit](Gitility.Commit.md): A decoded commit.
- [Gitility.Diff](Gitility.Diff.md): A structured diff between two snapshots (or trees).
- [Gitility.Diff.File](Gitility.Diff.File.md): One changed file in a diff.
- [Gitility.Diff.Hunk](Gitility.Diff.Hunk.md): One hunk of a patch-format diff.
- [Gitility.Diff.Line](Gitility.Diff.Line.md): One line of a hunk. `content` is raw bytes without the leading
origin marker; `old_line`/`new_line` are 1-based, `nil` on the side
where the line does not exist. `no_newline` is true when this is the
final line on its side and that side has no trailing newline, equivalent
to Git's `\ No newline at end of file` marker.

- [Gitility.File](Gitility.File.md): The result of reading one file from a snapshot.
- [Gitility.Identity](Gitility.Identity.md): An author or committer identity, preserved exactly as Git encoded it.
- [Gitility.Job](Gitility.Job.md): A handle to one asynchronous query.
- [Gitility.Limits](Gitility.Limits.md): Resource budgets for a single operation.
- [Gitility.ODB](Gitility.ODB.md): Object databases: where Git objects come from.
- [Gitility.ODB.Backend](Gitility.ODB.Backend.md): The behaviour for Elixir-backed object storage.
- [Gitility.ODB.Backend.Conformance](Gitility.ODB.Backend.Conformance.md): Reusable ExUnit conformance case for `Gitility.ODB.Backend` implementations.
- [Gitility.ODB.PackFetch](Gitility.ODB.PackFetch.md): Eagerly hydrates an immutable pack manifest into a local gix object store.
- [Gitility.ODB.PackInventory](Gitility.ODB.PackInventory.md): Collects the complete packable object inventory of a local repository.
- [Gitility.ODB.Provider.Supervisor](Gitility.ODB.Provider.Supervisor.md): Internal provider supervision tree.
- [Gitility.ODB.RangeBackend](Gitility.ODB.RangeBackend.md): The behaviour for byte-range access to a published pack store.
- [Gitility.ODB.RangeBackend.Conformance](Gitility.ODB.RangeBackend.Conformance.md): Reusable ExUnit conformance case for `Gitility.ODB.RangeBackend` modules.
- [Gitility.ODB.RangeBackend.LocalDirectory](Gitility.ODB.RangeBackend.LocalDirectory.md): Reference range backend for an atomically published local directory.
- [Gitility.ODB.RangeBackend.Postgres](Gitility.ODB.RangeBackend.Postgres.md): Optional Postgrex-backed range store using 1 MiB `bytea` chunks.
- [Gitility.OID](Gitility.OID.md): A Git object identifier: a hash algorithm plus the raw digest bytes.
- [Gitility.Object](Gitility.Object.md): A raw Git object: ID, type, and full payload bytes.
- [Gitility.ObjectHeader](Gitility.ObjectHeader.md): An object's type and size without its payload.
- [Gitility.PackDescriptor](Gitility.PackDescriptor.md): One pack in a `Gitility.PackManifest`: storage keys for the pack and its
index, sizes for planning fetches, and the pack checksum as identity.

- [Gitility.PackManifest](Gitility.PackManifest.md): An atomic inventory of the packs in a remote (or bundled) pack store.
- [Gitility.Page](Gitility.Page.md): One page of a potentially large result.
- [Gitility.Path](Gitility.Path.md): Helpers for Git path bytes.
- [Gitility.Ref](Gitility.Ref.md): One reference: a full raw name and its target.
- [Gitility.RefDB](Gitility.RefDB.md): Reference databases: mutable names for immutable objects.
- [Gitility.RefDB.Backend](Gitility.RefDB.Backend.md): The behaviour for Elixir-backed reference resolution.
- [Gitility.RefDB.Backend.Conformance](Gitility.RefDB.Backend.Conformance.md): Reusable ExUnit conformance case for `Gitility.RefDB.Backend` modules.
- [Gitility.RefDB.Provider.Supervisor](Gitility.RefDB.Provider.Supervisor.md): Internal reference-provider supervision tree.
- [Gitility.RefQuery](Gitility.RefQuery.md): A reference listing query: an optional raw-byte name prefix, a page
limit, and an opaque continuation cursor.

- [Gitility.RefTarget](Gitility.RefTarget.md): What a reference points at.
- [Gitility.Repository](Gitility.Repository.md): A repository is just an ODB plus an optional RefDB.
- [Gitility.Runtime](Gitility.Runtime.md): An explicit, supervisable query runtime: one bounded native worker pool.
- [Gitility.SearchMatch](Gitility.SearchMatch.md): One match from a snapshot content search.
- [Gitility.Snapshot](Gitility.Snapshot.md): An immutable view of one commit — the unit every semantic query takes.
- [Gitility.Stats](Gitility.Stats.md): Work accounting attached to every query result.
- [Gitility.Submodule](Gitility.Submodule.md): Metadata correlating one snapshot gitlink with its `.gitmodules` declaration.
- [Gitility.TreeEntry](Gitility.TreeEntry.md): One entry from a tree listing.

- Exceptions
  - [Gitility.Error](Gitility.Error.md): The normalized error type for every Gitility operation.

