Opening Windows with Mender

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:

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:

  1. Build and run the tools
  2. Attempt to connect to a Mender server
  3. Try deploying artifacts with custom update modules
  4. 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.