Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/holger

holger-downstream/Cargo.toml

[package]
# `cargo install holger-downstream`: the on-prem, airgapped downstream (one of Holger's
# four products: `holger`, `holger-downstream`, `holger-ui`, `holger-cli`). A thin crate:
# its `main` is the server program (`holger::run`) built with the gateway's features.
# Airgap = downstream: there is no separate airgap product.
#
# crates.io: `holger-downstream` 2.0.0 is the rules library published before this crate
# took the name (now `holger-downstream-rules`), so this crate's first publish is the next
# Holger version (above 2.0.0).
name = "holger-downstream"
# Its own workspace (see the root `exclude`): its version follows the root's by hand.
version = "3.1.0"
edition = "2021"
authors = ["Ignalina ApS", "Vetra Automation AB"]
description = "Holger downstream: the on-prem, airgapped artifact gateway. It takes packages from ONE upstream Holger only (a signed bundle carried in, or a sync from that upstream), verifies them, serves twelve package formats to the build systems and dials nothing else."
license = "AGPL-3.0-only"
repository = "https://git.gunnar.rs/nordisk/holger"
homepage = "https://holger.rs"
readme = "../README.md"
keywords = ["artifact", "registry", "airgap", "downstream", "supply-chain"]
categories = ["command-line-utilities", "development-tools"]

[[bin]]
name = "holger-downstream"
path = "src/main.rs"

# The FETCHING appliance's program (Build Thing row `downstream-fetch-musl`, lane HOL-CDS-5):
# the same `main` built with `fetch`, under its own name so the one-way appliance's
# `holger-downstream` and it never write the same file. `cargo install holger-downstream`
# installs only `holger-downstream`.
[[bin]]
name = "holger-downstream-fetch"
path = "src/main.rs"
required-features = ["fetch"]

[dependencies]
holger = { version = "3.1.0", path = "../server/cli", default-features = false, features = ["downstream"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
anyhow = "1"

[features]
# The gateway itself is the `holger` dependency's `downstream`: the twelve formats, no
# scanner, and ONE-WAY (lane HOL-CDS): its packages come in only through its inbox, and a
# way out is refused at start by line.
default = []
# `fetch`: the way out to its one upstream (the mirror pull of signed bundles, the sync pull
# and its signed ack); with it the RON may say `boundary: Fetch`.
fetch = ["holger/fetch"]
# ── The named extras (the same four as `holger` and `holger-cli`) ──
all-formats = ["holger/all-formats"]
online = ["holger/online"]
federation = ["holger/federation"]
full = ["all-formats", "online", "federation", "fetch", "holger/full"]
# ── The appliance builds (Build Thing rows `downstream-musl`, `downstream-fetch-musl`) ──
# A downstream whose upstream is reached over WireGuard from a signed invite (it fetches).
downstream-wg = ["fetch", "holger/downstream-wg"]
# The FETCHING downstream as the box's init, paired with its estate (row `downstream-fetch-musl`).
paired = ["holger/paired"]
# The ONE-WAY downstream as the box's init without pairing (row `downstream-musl`, lane
# HOL-CDS-5): the medium's network, a HOLGER-INBOX stick's signed bundles into the inbox, the
# clean stop; it dials nothing.
pid1 = ["holger/pid1"]
# A TEST build (lane HOL-SANDBOX-TRAIT): `rules: (sandbox: off)` verifies its bundles in this
# process, for the tests in the toolchain image, which has no container engine. Never shipped.
sandbox-off = ["holger/sandbox-off"]

# A workspace of its own: the server's `downstream` feature must never unify into the root's
# `holger` (and the root's dev-dependencies never into this build).
[workspace]

[profile.dev.package.sha2]
opt-level = 3

[profile.test]
debug = "line-tables-only"