# exgit v0.1.0 - Table of Contents > Pure-Elixir git: clone, fetch, push over smart HTTP v2 with lazy partial-clone support and a path-oriented FS API for agents. No `git` binary, no libgit2, no shelling out. ## Pages - [Exgit](readme.md) - [Changelog](changelog.md) - [Security Policy](security.md) - [Performance](performance.md) ## Modules - [Exgit](Exgit.md): Pure-Elixir git client — clone, fetch, push, plus a path-oriented filesystem API for reading blobs by path. - [Exgit.Application](Exgit.Application.md): OTP application callback for Exgit. - [Exgit.Blame](Exgit.Blame.md): Per-line authorship attribution for a file at a ref. - [Exgit.CloudflareArtifacts](Exgit.CloudflareArtifacts.md): Cloudflare Artifacts REST API client. - [Exgit.CloudflareArtifacts.Repo](Exgit.CloudflareArtifacts.Repo.md): Cloudflare Artifacts repository. - [Exgit.CloudflareArtifacts.Token](Exgit.CloudflareArtifacts.Token.md): Cloudflare Artifacts repo-scoped token. - [Exgit.Config](Exgit.Config.md): Parser and emitter for git-style INI configuration files. - [Exgit.Credentials](Exgit.Credentials.md): Helpers for constructing transport auth values, plus a small host-scoped credential mechanism. - [Exgit.Diff](Exgit.Diff.md): Compare two git trees and return a list of changes. - [Exgit.Diff.LineDiff](Exgit.Diff.LineDiff.md): Line-level diff between two sequences of lines via Myers diff. - [Exgit.Error](Exgit.Error.md): Canonical error shape for exgit. - [Exgit.FS](Exgit.FS.md): Path-oriented read/write access to a git repository — the interface an agent actually wants. - [Exgit.Filter](Exgit.Filter.md): Partial-clone filter specs (git protocol v2 `filter` capability). - [Exgit.Hash](Exgit.Hash.md): Behaviour for a git object-id hash function. - [Exgit.Hash.SHA1](Exgit.Hash.SHA1.md): SHA-1 implementation of `Exgit.Hash`. Currently the only hash function used — git's default. SHA-256 repos are not yet supported. - [Exgit.Index](Exgit.Index.md): Parser for git's on-disk index format (`.git/index`). - [Exgit.LFS](Exgit.LFS.md): Git LFS (Large File Storage) pointer detection. - [Exgit.Object](Exgit.Object.md): Umbrella type + dispatch for git's four object kinds: `Blob`, `Tree`, `Commit`, `Tag`. Each has its own struct in `Exgit.Object.*`; this module is the common entry point for decode/encode/sha/type across all of them. - [Exgit.Object.Blob](Exgit.Object.Blob.md): Git blob object — a raw byte buffer. - [Exgit.Object.Commit](Exgit.Object.Commit.md): A git commit object. - [Exgit.Object.Tag](Exgit.Object.Tag.md): Git annotated tag object. - [Exgit.Object.Tree](Exgit.Object.Tree.md): A git tree object. - [Exgit.ObjectStore](Exgit.ObjectStore.md): Storage protocol for git objects, keyed by binary SHA-1. - [Exgit.ObjectStore.Disk](Exgit.ObjectStore.Disk.md): On-disk git object store — reads and writes objects from `/objects/` in git's standard layout: loose objects under `aa/bbbb...` and packed objects via `pack-*.{pack,idx}`. - [Exgit.ObjectStore.Promisor](Exgit.ObjectStore.Promisor.md): An object store that fetches missing objects on demand from a transport, caching them locally. - [Exgit.ObjectStore.SharedPromisor](Exgit.ObjectStore.SharedPromisor.md): GenServer wrapper around `Exgit.ObjectStore.Promisor` that serializes cache access across processes. - [Exgit.Pack.Delta](Exgit.Pack.Delta.md): Apply git's pack delta format against a base object. - [Exgit.Pack.Index](Exgit.Pack.Index.md): Pack-index (`.idx`) writer and reader for git pack-index v2. - [Exgit.Pack.Reader](Exgit.Pack.Reader.md): Parser for git packfiles (v2 / v3). - [Exgit.Pack.StreamParser](Exgit.Pack.StreamParser.md): Forward-only, bounded-memory streaming pack parser. - [Exgit.Pack.Writer](Exgit.Pack.Writer.md): Build a pack (`build/1`) and optionally its `.idx` index (`build_with_index/1`) from a list of objects. - [Exgit.PktLine](Exgit.PktLine.md): Git's [pkt-line](https://git-scm.com/docs/gitformat-pack) framing. - [Exgit.PktLine.Decoder](Exgit.PktLine.Decoder.md): Incremental, stateful pkt-line decoder for streaming HTTP bodies. - [Exgit.Profiler](Exgit.Profiler.md): Lightweight profiler that aggregates `:telemetry` span events into a structured trace. - [Exgit.RefName](Exgit.RefName.md): Validation of git ref names per [`git check-ref-format`][1] rules. - [Exgit.RefStore](Exgit.RefStore.md) - [Exgit.RefStore.Disk](Exgit.RefStore.Disk.md): Filesystem-backed ref store. - [Exgit.RefStore.Memory](Exgit.RefStore.Memory.md): In-memory implementation of the `Exgit.RefStore` protocol. - [Exgit.RepoHandle](Exgit.RepoHandle.md): Opt-in process-based handle around a `Repository.t()` value. - [Exgit.RepoRegistry](Exgit.RepoRegistry.md): Process-wide registry of shared `RepoHandle`s keyed by URL. - [Exgit.Repository](Exgit.Repository.md): A git repository value. - [Exgit.Telemetry](Exgit.Telemetry.md): Telemetry event names and conventions for exgit. - [Exgit.Transport](Exgit.Transport.md): Protocol for git transports — HTTP, file, and user-defined (e.g. SSH or in-memory). Any struct that implements this protocol can be used interchangeably with `Exgit.clone/2`, `Exgit.fetch/3`, and `Exgit.push/3`. - [Exgit.Transport.File](Exgit.Transport.File.md): `Exgit.Transport` implementation that reads from and writes to a local on-disk git repository (bare or non-bare) without going over the network. - [Exgit.Transport.HTTP](Exgit.Transport.HTTP.md): `Exgit.Transport` implementation for git smart-HTTP v2. - [Exgit.Walk](Exgit.Walk.md): Commit graph traversal — `ancestors/3` and `merge_base/2`. - [Exgit.Workspace](Exgit.Workspace.md): An agent-loop working tree on top of a git ref. - [Exgit.Workspace.VFS](Exgit.Workspace.VFS.md): `VFS.Mountable` defimpl for `Exgit.Workspace`.