
Update infrastructure, not a framework.¶
A lightweight Go update library with a release CLI and an optional sidecar
for any language. Embed it, call Check, then Apply. Your application keeps
its UI, lifecycle and restart behavior.
Get started with the Go SDK View on GitHub Go API reference
u, err := wmlupdate.New(wmlupdate.Options{
ConfigPath: "updater.json",
CurrentVersion: appVersion,
})
defer u.Close()
update, err := u.Check(ctx)
if update.Available {
result, err := u.Apply(ctx, update, wmlupdate.ApplyOptions{})
}
Why WML Update¶
-
Small public API
New,Check,Apply,Close. No daemon, service locator, global state or required application architecture. -
Verified artifacts
Every download requires SHA-256. Optional Ed25519 manifests and checksums, HTTPS enforcement and host allowlists.
-
Transactional installs
Staged directory/file swaps, crash recovery, backups and rollback data.
-
Windows-aware
Deferred detached helper waits for the application to exit, then replaces and relaunches it.
-
Two sources
GitHub Releases and self-hosted, signed static manifests.
-
Any language
Non-Go applications use the same engine through NDJSON or a local HTTP API.
Quick start¶
import wmlupdate "github.com/yxxbc/wmlUpdate"
u, err := wmlupdate.New(wmlupdate.Options{
ConfigPath: "updater.json",
CurrentVersion: "1.4.2",
})
if err != nil { return err }
defer u.Close()
update, err := u.Check(ctx)
if err != nil || !update.Available { return err }
_, err = u.Apply(ctx, update, wmlupdate.ApplyOptions{})
Continue with the Go SDK guide, configuration, or take the sidecar path for Python, Node.js, C#, Java or shell.
Release tooling¶
wml-update keygen --out-dir keys
wml-update publish --spec publish.json --out public/stable --key keys/signing-key.pem
Produces manifest.json, its Ed25519 signature, checksums.txt and a detached
checksum signature. See self-hosting and
GitHub Releases.