...
1# continuity
2
3[](https://pkg.go.dev/github.com/containerd/continuity)
4[](https://github.com/containerd/continuity/actions?query=workflow%3AContinuity+branch%3Amain)
5
6A transport-agnostic, filesystem metadata manifest system
7
8This project is a staging area for experiments in providing transport agnostic
9metadata storage.
10
11See [opencontainers/runtime-spec#11](https://github.com/opencontainers/runtime-spec/issues/11)
12for more details.
13
14## Manifest Format
15
16A continuity manifest encodes filesystem metadata in Protocol Buffers.
17Refer to [proto/manifest.proto](proto/manifest.proto) for more details.
18
19## Usage
20
21Build:
22
23```console
24$ make
25```
26
27Create a manifest (of this repo itself):
28
29```console
30$ ./bin/continuity build . > /tmp/a.pb
31```
32
33Dump a manifest:
34
35```console
36$ ./bin/continuity ls /tmp/a.pb
37...
38-rw-rw-r-- 270 B /.gitignore
39-rw-rw-r-- 88 B /.mailmap
40-rw-rw-r-- 187 B /.travis.yml
41-rw-rw-r-- 359 B /AUTHORS
42-rw-rw-r-- 11 kB /LICENSE
43-rw-rw-r-- 1.5 kB /Makefile
44...
45-rw-rw-r-- 986 B /testutil_test.go
46drwxrwxr-x 0 B /version
47-rw-rw-r-- 478 B /version/version.go
48```
49
50Verify a manifest:
51
52```console
53$ ./bin/continuity verify . /tmp/a.pb
54```
55
56Break the directory and restore using the manifest:
57```console
58$ chmod 777 Makefile
59$ ./bin/continuity verify . /tmp/a.pb
602017/06/23 08:00:34 error verifying manifest: resource "/Makefile" has incorrect mode: -rwxrwxrwx != -rw-rw-r--
61$ ./bin/continuity apply . /tmp/a.pb
62$ stat -c %a Makefile
63664
64$ ./bin/continuity verify . /tmp/a.pb
65```
66
67## Platforms
68
69continuity primarily targets Linux. Continuity may compile for and work on
70other operating systems, but those platforms are not tested.
71
72## Contribution Guide
73### Building Proto Package
74
75If you change the proto file you will need to rebuild the generated Go with `go generate`.
76
77```console
78$ go generate ./proto
79```
80
81## Project details
82
83continuity is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE).
84As a containerd sub-project, you will find the:
85 * [Project governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md),
86 * [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS),
87 * and [Contributing guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md)
88
89information in our [`containerd/project`](https://github.com/containerd/project) repository.
View as plain text