Project: ayllu/papyri

License: AGPL-3.0

Description: OCI Compliant Container Registry

Clone
httphttps://ayllu-forge.org/ayllu/papyri
Source Tree

Kevin Schoon

1.1 years ago

refmain
commit50721fa0683a63b18a093b27915a4a5cfe2509c7
more ui features
 
File Commit Size Mode Time
.gitignore finish implementing OCI pull compliance 17 B -rw-r--r-- 1.1 years ago
Cargo.lock more ui features 40.6 KiB -rw-r--r-- 1.1 years ago
Cargo.toml more ui features 1.4 KiB -rw-r--r-- 1.1 years ago
LICENSE finish implementing OCI pull compliance 33.7 KiB -rw-r--r-- 1.1 years ago
README.md refactor address to be owned, add reverse addr parsing 1.3 KiB -rw-r--r-- 1.1 years ago
assets hackup primitive web interface NaN B d--------- 1.1 years ago
examples more ui features NaN B d--------- 1.1 years ago
results update results, rm a few files NaN B d--------- 1.1 years ago
scripts hackup primitive web interface NaN B d--------- 1.1 years ago
src more ui features NaN B d--------- 1.1 years ago
templates more ui features NaN B d--------- 1.1 years ago
README.md
1.3 KiB

Papyri

Papyri is a OCI Distribution Spec compliant container registry that is consumable as a Rust library for use with axum. An example server is provided for illistrative purposes and a full-featured standalone container registry might be implemented in the future. This library is intended to be used in Ayllu but may be useful elsewhere.

Note that this code has only been tested for use with Podman.

OCI Distribution Test

The distribution spec contains a compliance test that is package in the form of a container. Build the container provided here and then run scripts/conformance_test.sh. Results are saved in the results/ directory.

Running the Example

First add a new insecure registry to your /etc/containers/registries.conf.

[[registry]]
location = "localhost:8700"
insecure = true

Then run the example server:

cargo run --example=server

And finally interact with the dev server:

podman login localhost:8700
podman tag alpine:3 localhost:8700/alpine:3
podman push localhost:8700/alpine:3
podman pull localhost:8700/alpine:3