I’ve created a preliminary, highly experimental port of both the Mender client (C++) and the mender-artifact tool (Go) to run natively on Windows.
Repositories:
- mender-artifact: GitHub - TheYoctoJester/mender-artifact at windows-support
- mender client: GitHub - TheYoctoJester/mender at windows-port
What Works
This port supports a limited but functional subset of Mender capabilities on Windows:
- Server connectivity and device authentication (tested against hosted.mender.io)
- Artifact download and verification
- Installation via custom update modules
What Does Not Work (and Is Not Supported)
To be explicit: everything outside the scope above is untested and unsupported. This includes, but is not limited to:
- A/B partition-based system updates (not applicable to Windows)
- PKCS#11 / hardware security module integration
- D-Bus integration
- Systemd service management
This is not a production-ready solution. It’s an experimental proof-of-concept.
Building
mender-artifact (Go):
$env:CGO_ENABLED = "0"
go build -tags "nopkcs11" -o mender-artifact.exe .
mender client (C++):
The client uses vcpkg for dependency management. Refer to the repository README for build instructions.
Call for Testers
I’m looking for people to try this out and break it. If you have a Windows environment and some time to spare, please:
- Build and run the tools
- Attempt to connect to a Mender server
- Try deploying artifacts with custom update modules
- Report any issues, crashes, or unexpected behavior on the respective GitHub repositories
Feedback on edge cases, build problems on different Windows versions, or general usability issues is welcome.
Acknowledgments
This port was developed with assistance from Claude Code.
For the curious: yes, the title is a pun. No, I’m not sorry.