diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8c0dca69..3f2c594e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,6 +34,14 @@ jobs: platform: linux/arm64 tags-suffix: "-slim" + - target: "musl" + platform: linux/amd64 + tags-suffix: "-slim-pq" + + - target: "musl" + platform: linux/arm64 + tags-suffix: "-slim-pq" + - target: "gnu" build-feature: "-s2n" platform: linux/amd64 @@ -44,6 +52,26 @@ jobs: platform: linux/arm64 tags-suffix: "-s2n" + - target: "gnu" + build-feature: "-pq" + platform: linux/amd64 + tags-suffix: "-pq" + + - target: "gnu" + build-feature: "-pq" + platform: linux/arm64 + tags-suffix: "-pq" + + - target: "gnu" + build-feature: "-s2n-pq" + platform: linux/amd64 + tags-suffix: "-s2n-pq" + + - target: "gnu" + build-feature: "-s2n" + platform: linux/arm64 + tags-suffix: "-s2n-pq" + - target: "gnu" build-feature: "-webpki-roots" platform: linux/amd64 diff --git a/.github/workflows/release_docker.yml b/.github/workflows/release_docker.yml index c0182729..7a3105d7 100644 --- a/.github/workflows/release_docker.yml +++ b/.github/workflows/release_docker.yml @@ -30,6 +30,17 @@ jobs: jqtype/rpxy:latest ghcr.io/junkurihara/rust-rpxy:latest + - target: "default-pq" + dockerfile: ./docker/Dockerfile + platforms: linux/amd64,linux/arm64 + build-args: | + "CARGO_FEATURES=--no-default-features --features=http3-quinn,cache,rustls-backend,acme,post-quantum" + tags-suffix: "-pq" + # Aliases must be used only for release builds + aliases: | + jqtype/rpxy:pq + ghcr.io/junkurihara/rust-rpxy:pq + - target: "default-slim" dockerfile: ./docker/Dockerfile-slim build-contexts: | @@ -42,6 +53,20 @@ jobs: jqtype/rpxy:slim ghcr.io/junkurihara/rust-rpxy:slim + - target: "default-slim-pq" + dockerfile: ./docker/Dockerfile-slim + build-args: | + "CARGO_FEATURES=--no-default-features --features=http3-quinn,cache,rustls-backend,acme,post-quantum" + build-contexts: | + messense/rust-musl-cross:amd64-musl=docker-image://messense/rust-musl-cross:x86_64-musl + messense/rust-musl-cross:arm64-musl=docker-image://messense/rust-musl-cross:aarch64-musl + platforms: linux/amd64,linux/arm64 + tags-suffix: "-slim-pq" + # Aliases must be used only for release builds + aliases: | + jqtype/rpxy:slim-pq + ghcr.io/junkurihara/rust-rpxy:slim-pq + - target: "s2n" dockerfile: ./docker/Dockerfile build-args: | @@ -54,6 +79,18 @@ jobs: jqtype/rpxy:s2n ghcr.io/junkurihara/rust-rpxy:s2n + - target: "s2n-pq" + dockerfile: ./docker/Dockerfile + build-args: | + "CARGO_FEATURES=--no-default-features --features=http3-s2n,cache,rustls-backend,acme,post-quantum" + "ADDITIONAL_DEPS=pkg-config libssl-dev cmake libclang1 gcc g++" + platforms: linux/amd64,linux/arm64 + tags-suffix: "-s2n-pq" + # Aliases must be used only for release builds + aliases: | + jqtype/rpxy:s2n-pq + ghcr.io/junkurihara/rust-rpxy:s2n-pq + - target: "webpki-roots" dockerfile: ./docker/Dockerfile platforms: linux/amd64,linux/arm64 diff --git a/docker/README.md b/docker/README.md index 25f5b86f..ab373a42 100644 --- a/docker/README.md +++ b/docker/README.md @@ -32,12 +32,14 @@ Differences among tags are summarized as follows. - `latest`: Built from the `main` branch with default features, running on Ubuntu. - `latest-slim`, `slim`: Built by `musl` from the `main` branch with default features, running on Alpine. - `latest-s2n`, `s2n`: Built from the `main` branch with the `http3-s2n` feature, running on Ubuntu. +- `*-pq`: Built with the `post-quantum` feature. This feature supports the post-quantum key exchange using `rustls-post-quantum` crate. ### Nightly Builds - `nightly`: Built from the `develop` branch with default features, running on Ubuntu. - `nightly-slim`: Built by `musl` from the `develop` branch with default features, running on Alpine. - `nightly-s2n`: Built from the `develop` branch with the `http3-s2n` feature, running on Ubuntu. +- - `*-pq`: Built with the `post-quantum` feature. This feature supports the post-quantum key exchange using `rustls-post-quantum` crate. ## Caveats diff --git a/rpxy-bin/Cargo.toml b/rpxy-bin/Cargo.toml index d83213d7..50173fe9 100644 --- a/rpxy-bin/Cargo.toml +++ b/rpxy-bin/Cargo.toml @@ -13,9 +13,9 @@ publish.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] -default = ["http3-quinn", "cache", "rustls-backend", "acme", "post-quantum"] +# default = ["http3-quinn", "cache", "rustls-backend", "acme", "post-quantum"] # default = ["http3-s2n", "cache", "rustls-backend", "acme", "post-quantum"] -# default = ["http3-quinn", "cache", "rustls-backend", "acme"] +default = ["http3-quinn", "cache", "rustls-backend", "acme"] # default = ["http3-s2n", "cache", "rustls-backend", "acme"] http3-quinn = ["rpxy-lib/http3-quinn"] http3-s2n = ["rpxy-lib/http3-s2n"]