3.6 Transport

Everything a repository serves is a static file fetched over HTTP.

3.6.1 Size caps #

Every fetch is capped, so that a hostile or broken server cannot exhaust memory before anything has been verified.

ArtifactCap
Repository descriptor4 MiB
Detached signature4 KiB
Public key file64 KiB
Index64 MiB
Package filethe index-declared compressed size, plus an allowance

The package allowance is a flat 16 MiB above the declared compressed size, applied uniformly regardless of how large the package is.

3.6.2 URL resolution #

A URL in a descriptor or an index may be absolute, rooted, or document-relative, and each resolves as PSPU §5.36 describes: an absolute URL as-is, a leading-slash URL against the repository base, and anything else against the document that carried it.

3.6.3 Schemes #

HTTPS is required unless the repository's insecure-transport setting is enabled. peipkg warns for each configured repository during add, refresh and cached-index use for package planning. The warning names the repository and states that its configuration does not require HTTPS. It is emitted before the access, including when that access fails, and is a warning event in the driven interface. It describes the allowance even when a particular URL happens to use HTTPS.

file:// is supported for development and is exempt from the transport check entirely rather than gated by the insecure-transport setting.

3.6.4 Failure #

A fetch failure is reported and fails the operation. peipkg does not substitute cached data for a failed fetch without the operator saying so.

Edit this page