Skip to content

feat: Windows backend (WinCairo WebKit) + docs - #6

Merged
ipfizz merged 45 commits into
mainfrom
feat/windows-backend
Jun 22, 2026
Merged

ipfizz merged 45 commits into
mainfrom
feat/windows-backend

Conversation

@ipfizz

@ipfizz ipfizz commented Jun 21, 2026

Copy link
Copy Markdown
Owner

A from-scratch Windows backend on pure bun:ffi - and WinCairo WebKit, never WebView2/Chromium.

What's built (~6k LOC, packages/bunmaska/src/main/platform/windows/)

  • Win32 foundation: UTF-16 marshalling, import-safe DLL loaders, a native window + cooperative message pump (non-blocking, cooperates with Bun like the macOS/Linux pumps).
  • WinCairo WebKit view in an HWND: the WebKit2 C-API loader (WebKit2.dll, not COM/WebView2), renderer↔main IPC bridge, navigation lifecycle, zoom/user-agent/auto-resize. Loaded from the engine store via SetDllDirectory (the Windows analogue of $ORIGIN/@rpath).
  • ~10 modules: clipboard (text+HTML), safeStorage (DPAPI), tray (Shell_NotifyIcon), screen (EnumDisplayMonitors + per-monitor DPI), shell (ShellExecuteW), globalShortcut (RegisterHotKey), powerSaveBlocker (SetThreadExecutionState), powerMonitor (suspend/resume/lock), nativeTheme (registry dark mode).
  • CLI: bunmaska build --target windows → a compiled .exe + engine.id + a .zip.
  • Platform: windows is now a supported platform; x64 + ARM64, never x86. A windows-latest CI leg runs validate:windows.

Honest gaps (throw a clear error, don't silently no-op): printToPDF/capturePage, DevTools, clipboard images, tray context menu. End-to-end shipping still needs a hosted WinCairo engine (same blocker as the Linux pinned tier).

Docs updated to match: roadmap (Windows → "in the build"), platforms page, homepage, README. Plus a small theme-color meta.

🤖 Generated with Claude Code

ipfizz added 30 commits June 20, 2026 14:40
@ipfizz
ipfizz merged commit 9c30357 into main Jun 22, 2026
3 checks passed
@ipfizz
ipfizz deleted the feat/windows-backend branch June 22, 2026 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant