ImagePipe.Source.CacheSemantics (image_pipe v0.1.0)

Copy Markdown View Source

Source-owned cache facts used by internal and HTTP cache decisions.

byte_identity seeds must be deterministic, non-secret, and stable across nodes for the same source bytes. The core validates the tagged shape but does not validate seed contents structurally.

A strong byte identity is only valid when stable? is true. A source whose bytes can change uses byte_identity: :content and stable?: false: its identity is the SHA-256 of the original bytes, taken when they're fetched.

copy? asks ImagePipe to keep a local copy of the original, in the input pool when internal_cache allows, so other variants of it don't read it from its origin again. Remote adapters set it. A source that returns a local path without it is read where it is, and hashed in place when it has a content identity.

Summary

Types

byte_identity()

@type byte_identity() :: {:strong, term()} | :content

t()

@type t() :: %ImagePipe.Source.CacheSemantics{
  byte_identity: byte_identity(),
  copy?: boolean(),
  policy: ImagePipe.Source.CachePolicy.t(),
  stable?: boolean()
}