import "go.chromium.org/luci/common/isolated"
Package isolated defines the isolated common code shared by the client and server.
algo.go doc.go isolated.go large.go utils.go
const IsolatedFormatVersion = "2.0"
IsolatedFormatVersion is version of *.isolated file format. Put into JSON.
GetCompressor returns a fresh instance of the compression algorithm.
It must be closed after use.
It is currently hardcoded to RFC 1950 (zlib).
GetDecompressor returns a fresh instance of the decompression algorithm.
It must be closed after use.
It is currently hardcoded to RFC 1950 (zlib).
GetHash returns a fresh instance of the hashing algorithm to be used to calculate the HexDigest.
A prefix of "sha256-" and "sha512-" respectively returns a sha-256 and sha-512 instance. Otherwise a sha-1 instance is returned.
HashFile hashes a file and returns a HandlersEndpointsV1Digest out of it.
Pack returns a deflate'd buffer of delta encoded varints.
Unpack decompresses a deflate'd delta encoded list of varints.
WriteStats writes cache stats in packed format.
type File struct { Digest HexDigest `json:"h,omitempty"` Link *string `json:"l,omitempty"` Mode *int `json:"m,omitempty"` Size *int64 `json:"s,omitempty"` Type FileType `json:"t,omitempty"` }
File describes a single file referenced by content in a .isolated file.
For regular files, the Digest, Mode, and Size fields should be set, and the Type field should be set for non-basic files. For symbolic links, only the Link field should be set.
BasicFile returns a File populated for a basic file.
SymLink returns a File populated for a symbolic link.
TarFile returns a file populated for a tar archive file.
FileType describes the type of file being isolated.
const ( // Basic represents normal files. It is the default type. Basic FileType = "basic" // ArArchive represents an ar archive containing a large number of small files. ArArchive FileType = "ar" // TarArchive represents a tar archive containing a large number of small files. TarArchive FileType = "tar" )
HexDigest is the hash of a file that is hex-encoded. Only lower case letters are accepted.
Hash hashes a reader and returns a HexDigest from it.
HashBytes hashes content and returns a HexDigest from it.
Sum is a shortcut to get a HexDigest from a hash.Hash.
Validate returns true if the hash is valid.
HexDigests is a slice of HexDigest that implements sort.Interface.
func (h HexDigests) Len() int
func (h HexDigests) Less(i, j int) bool
func (h HexDigests) Swap(i, j int)
type Isolated struct { Algo string `json:"algo"` // Must be "sha-1" Files map[string]File `json:"files,omitempty"` Includes HexDigests `json:"includes,omitempty"` Version string `json:"version"` }
Isolated is the data from a JSON serialized .isolated file.
New returns a new Isolated with the default Algo and Version.
Package isolated imports 13 packages (graph) and is imported by 43 packages. Updated 2021-01-21. Refresh now. Tools for package owners.