Repository navigation
v0.0.1
The first release of the mechanism-only Win32 bridge for
react-x11 — HWNDs on a UI thread of
their own, DirectComposition surfaces, a Direct2D verb table and DirectWrite
text.
npm install @windowkit/win32
JS never waits on the UI thread. Every JS→UI call is a command on a queue
and every answer an event, so Windows' modal loops — DoDragDrop,
TrackPopupMenuEx, IFileDialog::Show — never freeze Node. Timers keep
firing and React keeps committing while a drag or a dialog is up.
133 verbs, roughly by area: 36 ctx* verbs over Direct2D; DirectWrite layouts,
font matching and glyph runs; windows, input and IME; drag and drop over OLE; a
UI Automation provider answered from a mirror of the tree; a WGL context over
WGL_NV_DX_interop2; <Frame> panes over a shared composition surface; frame
pacing on the compositor clock; the tray, taskbar, jump lists and AppUserModelID.
Binaries
prebuilds/win32-x64/ and prebuilds/win32-arm64/ both ride in the npm
tarball — npm resolves a package per platform and not per architecture — and
scripts/install.js picks the one that matches at install time. Neither is
cross-compiled: each was built and arch-checked on a runner of its own
architecture, in the CI run on this commit. Without a match the install falls
back to node-gyp rebuild, and a failure there warns rather than breaking the
install, because this is an optional dependency and the renderer's answer to a
missing backend is to use another one.
Attached: both binaries, and the published tarball
(shasum 43bbfa733671c9f984d55c2b0debc758917c6e13).
About this one release
Published by hand from a laptop, so it carries no provenance attestation.
npm's trusted publishing has to be configured on a package that already exists,
which makes the first release the one that cannot come from CI. Every release
after this is a release-please pull request, published by the workflow with
--provenance and no token anywhere. See
docs/releasing.md.
Not yet here: activation — file associations, URL schemes, and a second
launch handing its arguments to the first — and pointer and keyboard grabs.