-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add reference type and container transports #205
Comments
cgwalters
added a commit
to cgwalters/oci-spec-rs
that referenced
this issue
Aug 30, 2024
Almost all tools which operate with OCI will end up wanting to parse and use proper references. Import the code from the rust-oci-client crate. I imported the code with history with this blog which I found helpful: https://savorywatt.com/2015/01/25/move-files-and-folders-between-git-repos-using-patches/ Changes: - Move `regex.rs` code inline into this file - Switch to std `LazyLock` instead of `lazy_static` crate For more see: - youki-dev#205 - oras-project/rust-oci-client#159 Signed-off-by: Colin Walters <[email protected]>
cgwalters
added a commit
to cgwalters/oci-spec-rs
that referenced
this issue
Aug 30, 2024
Almost all tools which operate with OCI will end up wanting to parse and use proper references. Import the code from the rust-oci-client crate. I imported the code with history with this blog which I found helpful: https://savorywatt.com/2015/01/25/move-files-and-folders-between-git-repos-using-patches/ Changes: - Move `regex.rs` code inline into this file - Switch to std `LazyLock` instead of `lazy_static` crate For more see: - youki-dev#205 - oras-project/rust-oci-client#159 Signed-off-by: Colin Walters <[email protected]>
Merged
@cgwalters is this done? |
First part is, but WDYT about the second part in the initial comment around the skopeo transports? |
@cgwalters yes I think having the transports side by side to the reference type would make sense. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Currently this crate faithfully tracks most of the image spec. However, there's some linkage between the image spec and the distribution spec; for example the image spec notes
org.opencontainers.image.base.name
and saysAnd in practice of course many tools that are using the image spec will also want to deal with distribution. Now, there is a Rust crate https://github.com/oras-project/rust-oci-client which contains a full client for distribution including a Reference type.
I'd like to propose that we import that reference type - but obviously not the full client code. (For me currently I am using https://github.com/containers/containers-image-proxy-rs which speaks the distribution bits via forking
skopeo
instead of reimplementing it, for the reasons enumerated in the git repo).But it would make total sense for containers-image-proxy-rs to use a reference type defined here.
There's then another thing...today in the podman-associated set of projects in github.com/containers we also have the "containers-transports" bits that are an extension of references (e.g.
docker://<reference>
as well asoci:/path/to/dir:<reference>
). Any objects to adding a parser for those here, corresponding to... https://github.com/containers/image/blob/0cade81948cafc0cd8f9dec5e3248b598bfdb7a0/transports/alltransports/alltransports.go#L27 I think? Except there's also code elsewhere that tries to heuristically accept both a reference and a transport+reference that we probably want too in Rust.The text was updated successfully, but these errors were encountered: