1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//! A content-addressable identity for software artifacts.
//!
//! GitOIDs are a mechanism for identifying artifacts in a manner which is
//! independently reproducible because it relies solely on the contents of
//! the artifact itself.
//!
//! The GitOID scheme comes from the Git version control system, which uses
//! this mechanism to identify commits, tags, files (called "blobs"), and
//! directories (called "trees"). It's also used by the GitBOM standard for
//! identifying inputs which produce software artifacts.
//!
//! `gitoid` is also an IANA-registered URL scheme, meaning that GitOIDs
//! are represented and shared as URLs. A `gitoid` URL looks like:
//!
//! ```text
//! gitoid:blob:sha256:fee53a18d32820613c0527aa79be5cb30173c823a9b448fa4817767cc84c6f03
//! ```
//!
//! This scheme starts with "`gitoid`", followed by the object type ("`blob`"
//! in this case), the hash algorithm ("`sha256`"), and the hash of the
//! artifact the GitOID represents. Each of these parts is separated
//! by a colon.
//!
//! The valid object types for a GitOID are:
//!
//! - `blob`
//! - `tree`
//! - `commit`
//! - `tag`
//!
//! The valid hash algorithms are:
//!
//! - `sha1`
//! - `sha256`
//!
//! GitOIDs provide a convenient mechanism to establish artifact identity and
//! validate artifact integrity (this artifact hasn't been modified) and
//! agreement (I have the same artifact you have).
pub
pub use crateError;
pub use crateResult;
pub use crateGitOid;
pub use crateHashAlgorithm;
pub use crateObjectType;