ocidir

Crates.ioocidir
lib.rsocidir
version0.3.1
sourcesrc
created_at2024-06-02 13:36:54.412416
updated_at2024-09-20 20:07:14.002065
descriptionA Rust library for reading and writing OCI (opencontainers) layout directories
homepage
repositoryhttps://github.com/containers/ocidir-rs
max_upload_size
id1259203
size47,188
Colin Walters (cgwalters)

documentation

README

ocidir

Crates.io

docs.rs

Read and write to OCI image layout directories

This library contains medium and low-level APIs for working with OCI images, which are basically a directory with blobs and JSON files for metadata.

Dependency on cap-std

This library makes use of cap-std to operate in a capability-oriented fashion. In practice, the code in this project is well tested and would not traverse outside its own path root. However, using capabilities is a generally good idea when operating in the container ecosystem, in particular when actively processing tar streams.

Examples

To access an existing OCI directory:

# use ocidir::cap_std;
# use anyhow::{anyhow, Result};
# fn main() -> anyhow::Result<()> {
let d = cap_std::fs::Dir::open_ambient_dir("/path/to/ocidir", cap_std::ambient_authority())?;
let d = ocidir::OciDir::open(&d)?;
println!("{:?}", d.read_index()?.ok_or_else(|| anyhow!("missing Image Index"))?);
# Ok(())
# }
Commit count: 51

cargo fmt