Skip to content

feat: add musl Linux targets to release workflow#58

Merged
daulet merged 1 commit intodaulet:mainfrom
bmorcos:add-musl-linux-targets
Mar 10, 2026
Merged

feat: add musl Linux targets to release workflow#58
daulet merged 1 commit intodaulet:mainfrom
bmorcos:add-musl-linux-targets

Conversation

@bmorcos
Copy link
Contributor

@bmorcos bmorcos commented Mar 3, 2026

Add x86_64-unknown-linux-musl and aarch64-unknown-linux-musl targets to the release CI matrix.

New release artifacts:

  • libtokenizers.linux-musl-x86_64.tar.gz (alias: linux-musl-amd64)
  • libtokenizers.linux-musl-arm64.tar.gz (alias: linux-musl-aarch64)

Motivation

musl-linked static libraries enable fully static Go binaries that run in distroless containers without any dependencies.

The default cross musl images lack g++ needed, so new Dockerfiles in cross/ extend the base images with the appropriate cross-compilation C++ toolchain. (or would it be better to just extend the base image?)

Benchmarks

Didn't run benchmarks since this is just updating artifacts and not changing implementation at all.

Add x86_64-unknown-linux-musl and aarch64-unknown-linux-musl targets
to the release CI matrix.

musl-linked static libraries enable fully static Go binaries that run
in distroless containers without any dependencies.

The default cross musl images lack g++ needed by the esaxx-rs transitive
dependency, so custom Dockerfiles in cross/ extend the base images with
the appropriate cross-compilation C++ toolchain.

New release artifacts:
- libtokenizers.linux-musl-x86_64.tar.gz (alias: linux-musl-amd64)
- libtokenizers.linux-musl-arm64.tar.gz (alias: linux-musl-aarch64)
@daulet daulet merged commit eb7797d into daulet:main Mar 10, 2026
1 check passed
@@ -0,0 +1,3 @@
FROM ghcr.io/cross-rs/aarch64-unknown-linux-musl:main
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using a floating :main image tag in release builds can make artifacts non-deterministic as upstream toolchains change. Consider pinning this base image to an immutable digest (and similarly in cross/musl-x86_64.Dockerfile) for reproducible releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants