ocilot

Crates.ioocilot
lib.rsocilot
version0.1.0-beta.2
created_at2025-06-03 23:14:19.378663+00
updated_at2025-06-03 23:31:58.43882+00
descriptioncli and library for interacting with OCI registries
homepage
repository
max_upload_size
id1699602
size256,193
Jarrett Tierney (jmt-lab)

documentation

README

Ocilot

Ocilot is a command-line tool and Rust library for interacting with OCI (Open Container Initiative) images and container registries.

Features

  • Push and pull OCI images to/from container registries
  • List images and tags in repositories
  • Image manifest inspection and manipulation
  • Copy images between registries
  • Export images as filesystem archives
  • Export images as a docker loadable tarball or as an oci image archive

Installation

Using Cargo

cargo install --git https://github.com/awslabs/ocilot.git

From Source

git clone https://github.com/awslabs/ocilot.git
cd ocilot
cargo build --release

CLI Usage Examples

# List images in a repository
ocilot list myregistry.com/myrepository
# Pull an image as an oci archive
ocilot pull myregistry.com/myrepository:latest archive.tar
# Pull an image with specific platform as a loadable tarball
ocilot pull --format=tarball myregistry.com/myrepository:latest archive.tar
# Push an oci image archive to a registry
ocilot push oci_image.tar myregistry.com/myrepository:latest
# Copy from one registry to another
ocilot copy source.io/mysource:v1.0.0 target.io/mytarget:v1.0.0

Library Usage

Add this to your Cargo.toml:

[dependencies]
ocilot = "0.1.0"

Features

  • progress - Enable support for logging progress of push and pull operations to progressbars using indicatif
  • compression - Enables support for automatically decompressing layers based off media type.

Authentication

Ocilot will handle automatic authorization with aws ecr both private and public based on the aws credentials in the calling environment. Any other registry credentials must be done via using docker login

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

Commit count: 0

cargo fmt