niffler_precompiled/manifest

Manifest model: priv/niffler.json.

The manifest is the trust anchor shipped inside the immutable Hex package. It maps (target, nif_version) pairs to release artifacts and their SHA-256 digests.

Types

pub type Artifact {
  Artifact(
    target: String,
    nif_version: String,
    file: String,
    sha256: String,
    size: Int,
  )
}

Constructors

  • Artifact(
      target: String,
      nif_version: String,
      file: String,
      sha256: String,
      size: Int,
    )
pub type Manifest {
  Manifest(
    package: String,
    version: String,
    nif_module: String,
    crate: String,
    source_path: String,
    base_url: String,
    artifacts: List(Artifact),
  )
}

Constructors

  • Manifest(
      package: String,
      version: String,
      nif_module: String,
      crate: String,
      source_path: String,
      base_url: String,
      artifacts: List(Artifact),
    )
pub type SelectError {
  NoTarget(target: String, available: List(String))
  NoCompatible(
    target: String,
    runtime_nif_version: String,
    available: List(String),
  )
}

Constructors

  • NoTarget(target: String, available: List(String))
  • NoCompatible(
      target: String,
      runtime_nif_version: String,
      available: List(String),
    )
pub type ValidateOptions {
  ValidateOptions(
    allow_insecure_base_url: Bool,
    require_artifacts: Bool,
  )
}

Constructors

  • ValidateOptions(
      allow_insecure_base_url: Bool,
      require_artifacts: Bool,
    )

Values

pub fn artifact_url(
  manifest: Manifest,
  artifact: Artifact,
) -> String
pub fn decode(input: String) -> Result(Manifest, String)
pub fn default_validate_options() -> ValidateOptions
pub fn empty(
  package: String,
  version: String,
  nif_module: String,
  crate: String,
  base_url: String,
) -> Manifest
pub fn encode(manifest: Manifest) -> String
pub fn find_artifact(
  manifest: Manifest,
  target: String,
  nif_version: String,
) -> option.Option(Artifact)
pub const schema_version: Int
pub fn select_artifact(
  manifest: Manifest,
  target: String,
  runtime_nif_version: String,
) -> Result(Artifact, SelectError)

Select the best artifact for target, preferring the newest compatible NIF version.

pub fn validate(
  manifest: Manifest,
  options: ValidateOptions,
) -> Result(Nil, String)
pub fn with_artifacts(
  manifest: Manifest,
  artifacts: List(Artifact),
) -> Manifest

Replace artifacts with a new list, preserving metadata.

✨ Search Document