PowerIO.jl wraps the Rust powerio-capi cdylib, shipped as a prebuilt
per-platform binary; users never compile it.
- A version tag on eigenergy/powerio
triggers its
release-binariesworkflow, which buildslibpowerio_capi.<triplet>.tar.gzwith thearrowfeature for Linux glibc (x86_64, aarch64), macOS (x86_64, arm64), and Windows (x86_64), and attaches the five tarballs to the GitHub release. Each tarball holds the cdylib underlib/(bin/on Windows), the C header underinclude/, and the licenses. - In this repository,
julia gen/update_artifacts.jl <tag>downloads the five tarballs, computes each one's sha256 and unpacked git-tree-sha1, and rewritesArtifacts.toml. The "Update artifacts" workflow runs this and opens the PR; the release ceremony around it is in CONTRIBUTING.md. Artifacts.tomlis lazy: nothing downloads atPkg.add; the tarball for the current platform is fetched on the first call that needs the library.
_lib() resolves the library in this order:
PowerIO.set_library!(path)/ thePOWERIO_CAPIenvironment variable (the dev override),- the
powerio_capiartifact, - a sibling
poweriocheckout'starget/{release,debug}build, - a plain
libpowerio_capion the loader path.
On an unsupported platform the artifact lookup fails and the fallbacks keep a local build working.
A PowerIO_jll built from gen/build_tarballs.jl (the BinaryBuilder recipe)
is the planned long-term distribution; current releases use the artifact
pipeline above.