1
0
Fork 0
mirror of https://github.com/imjasonh/krust synced 2026-07-08 06:45:32 +00:00
krust/Cargo.toml
Jason Hall b6b0c71d0c
feat: Implement registry authentication support
This implements authentication for container registries, porting
functionality from go-containerregistry's authn package to Rust.

Key features:
- AuthConfig struct for various auth types (basic, bearer, anonymous)
- Authenticator trait for pluggable auth providers
- DefaultKeychain that reads Docker config files from standard locations
- Support for credential helpers (docker-credential-*)
- Integration with oci-distribution for registry operations

The implementation checks for credentials in this order:
1. DOCKER_CONFIG environment variable
2. REGISTRY_AUTH_FILE environment variable
3. XDG_RUNTIME_DIR/containers/auth.json
4. HOME/.docker/config.json

Credential helpers are supported if configured in the Docker config.

This enables krust to:
- Pull private base images
- Push to authenticated registries
- Support various auth methods (basic, token, oauth2)

Closes #2

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-08 09:19:04 -04:00

34 lines
895 B
TOML

[package]
name = "krust"
version = "0.1.0"
edition = "2021"
authors = ["Jason Hall <imjasonh@gmail.com>"]
description = "A container image build tool for Rust applications"
license = "MIT OR Apache-2.0"
repository = "https://github.com/imjasonh/krust"
keywords = ["container", "docker", "oci", "build", "rust"]
categories = ["command-line-utilities", "development-tools"]
[dependencies]
clap = { version = "4.5", features = ["derive", "env"] }
tokio = { version = "1.35", features = ["full"] }
anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha256 = "1.5"
chrono = "0.4"
tar = "0.4"
flate2 = "1.0"
oci-distribution = "0.11"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
dirs = "6.0"
toml = "0.8"
which = "8.0"
tempfile = "3.9"
base64 = "0.22"
[dev-dependencies]
tempfile = "3.9"
assert_cmd = "2.0"
predicates = "3.0"