|
1 |
| -# template-rust |
| 1 | +# circe |
2 | 2 |
|
3 |
| -Template repository for a Rust project. |
| 3 | +_Circe (named after the Odyssean sorceress who transformed vessels and their contents) extracts and examines the contents of containers._ |
4 | 4 |
|
5 |
| -TODOs for a new project: |
6 |
| -- [ ] Change the license if MPL2 is not appropriate for the project. Make sure to do this before adding any code. |
7 |
| -- [ ] Ensure the dev docs (in particular the release and compatibility semantics) are valid for this project. |
8 |
| -- [ ] Set [CODEOWNERS] to the team that owns the repository. |
9 |
| -- [ ] Create an API user in [FOSSA] and store it as a secret named `FOSSA_API_KEY`. |
10 |
| - - Consider naming it with the pattern `ci-{REPO_NAME}`. For example, `ci-template-rust`. |
11 |
| -- [ ] Update repository permissions as appropriate. Generally, the CODEOWNER team is set as admin. |
12 |
| -- [ ] Update branch protection rules as appropriate. |
13 |
| -- [ ] Update repository features and settings. Recommended defaults: |
14 |
| - - [ ] Turn off all features (Wikis, Issues, Sponsorships, Discussions, Projects); FOSSA uses other systems for these. |
15 |
| - - [ ] Only allow squash merging. |
16 |
| - - [ ] Always suggest updating PR branches. |
17 |
| - - [ ] Allow auto-merge. |
18 |
| - - [ ] Automatically delete head branches. |
| 5 | +# usage |
19 | 6 |
|
20 |
| -Then just edit the included Rust project, or remove it and `cargo init` your project, and get going! |
| 7 | +TBD, but generally the goal will be something like: |
21 | 8 |
|
22 |
| -[codeowners]: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners |
23 |
| -[fossa]: https://app.fossa.com |
| 9 | +```shell |
| 10 | +# Export the contents of the image to disk |
| 11 | +; circe extract docker.io/contribsys/faktory:latest ./faktory --layers squash --platform linux/amd64 |
24 | 12 |
|
25 |
| -# recommendations |
| 13 | +# Export the contents of the image to stdout as NDJSON |
| 14 | +; circe read docker.io/contribsys/faktory:latest --layers squash --platform linux/amd64 |
| 15 | +``` |
26 | 16 |
|
27 |
| -- If publishing a Linux binary, consider providing two: one that [statically links libc](./docs/dev/reference/static-binary.md), and one that doesn't. |
28 |
| -- If publishing a macOS binary, consider providing two: one for [Intel and one for M-series CPUs](./docs/dev/reference/macos-arch.md). |
29 |
| -- If this application may be used on AWS Graviton or similar, consider providing an ARM build for Linux as well. |
| 17 | +# planned features |
| 18 | + |
| 19 | +- [ ] Support extracting contents of OCI images: |
| 20 | + - [ ] From OCI stores |
| 21 | + - [ ] From local container hosts (e.g. Docker) |
| 22 | + - [ ] From local tarballs |
| 23 | +- [ ] Extract the contents: |
| 24 | + - [ ] To disk |
| 25 | + - [ ] To stdout (as NDJSON) |
| 26 | +- [ ] Extract layers by: |
| 27 | + - [ ] Squashed layer sets (e.g. "base + rest" or "all layers" or other combinations) |
| 28 | + - [ ] Individual layers |
| 29 | + - [ ] Filtered layers |
| 30 | +- [ ] Specify target(s) to extract (e.g. `linux/amd64`, `darwin/arch64`, etc) |
| 31 | +- [ ] Filter file(s) to extract |
| 32 | +- [ ] When extracting files to stdout, store large blobs at temporary locations and reference them |
0 commit comments