[package] name = "openpxe-iso-store" version.workspace = true edition.workspace = true license.workspace = true authors.workspace = true description = "ISO upload, storage, introspection, and boot-entry generation for OpenPXE" [lints] workspace = true [dependencies] openpxe-core.workspace = true tokio = { workspace = true } tokio-util = { workspace = true } serde.workspace = true serde_json.workspace = true tracing.workspace = true thiserror.workspace = true anyhow.workspace = true sha2.workspace = true hex.workspace = true bcrypt.workspace = true uuid.workspace = true time.workspace = true parking_lot.workspace = true bytes.workspace = true tempfile = "3.12" libc = "0.2" # v0.4.61: server-side compose of the operator's uploaded raster into a # fixed 1024x768 canvas so the PXE menu always gets a consistently-sized # PNG regardless of what the operator uploaded. We use the bare-bones # `image` crate (no default features) and explicitly enable only the # decoders we accept on upload (PNG/JPEG/WebP/GIF) plus the PNG # encoder. Keeps the build slim — no JPEG2000, TIFF, BMP, etc. image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp", "gif"] } # v0.4.67: pure-Rust NFSv3 client for reading remote ISOs without a # kernel mount. See crates/iso-store/src/nfs_share.rs for usage. nfs3_client = { workspace = true } nfs3_types = { workspace = true } # Needed for the Stream trait that wraps the mpsc receiver feeding # NFS read-loop bytes into axum's Body::from_stream. futures = { workspace = true } [dev-dependencies] tempfile = "3.12"