Skip to main content

Crate tig_core

Crate tig_core 

Source
Expand description

no_std 前提の git client core。

外部 crate に依存せず、alloc のみを要求する。I/O を持たず、入力は常に &[u8] として受け取る (組み込みでは flash 上のデータを直接参照できる)。

feature 構成:

  • (常時): oid、SHA-1、zlib inflate、loose object の parse
  • pack: packfile v2 の解析と delta 解決
  • bundle: bundle v2/v3 の読み書き (pack を内包)
  • history: committer date 順の history walk
  • transport-http: protocol v2 の request 構築と response 解析 (sans-io)
  • fetch: smart HTTP からの clone 状態機械 (transport-http + bundle)
  • write: object (tree / commit) の生成と packfile の書き出し
  • push: smart HTTP への push 状態機械 (receive-pack、write + transport-http)
  • checkout: tree の展開 (filesystem は frontend の責務)

Modules§

build
object (tree / commit / tag) の生成。
bundle
git bundle (v2 / v3) の読み込み。
checkout
tree の展開 (checkout)。
clone
smart HTTP からの clone (sans-io の状態機械)。
delta
packfile の delta (git 独自形式) の適用。
err
ライブラリ全体で共有するエラー型。
history
commit history の walk。
object
git object (commit / tree / blob / tag) の解析。
oid
object id (SHA-1)。
pack
packfile (version 2) の解析。
pkt
pkt-line (gitprotocol-common) の符号化・復号。
protov0
receive-pack (push) の protocol version 0。
protov2
git protocol version 2 (gitprotocol-v2) の request 構築と response 解析。
push
smart HTTP への push (sans-io の状態機械)。
sha1
SHA-1 (RFC 3174)。
zlib
zlib (RFC 1950) / DEFLATE (RFC 1951) の伸長。

Traits§

Odb
object database の読み出し抽象。pack、loose object、メモリ上のストア等が実装する。