Skip to content
SeanShaffer88Public

About

Shared development resources for Windows desktop software — quality gates, a hardened GitHub publisher, scaffolding and templates — plus a 34-kit library of Rust Windows DLLs behind a C ABI (MIT), in one monorepo with full CI.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

392 Commits

Folders and files

Repository files navigation

WinDevKit

TL;DR

Shared development resources for Windows desktop software — plus a library of 36 small Rust DLLs that each do one common Windows job (settings, logging, folder watching, thumbnails, notifications, archives, OCR and more) behind one plain C interface with JSON in and out, so any language that can call C can use them. Everything is free and MIT-licensed, has no Rust crate dependencies, and ships as a ready-to-use download from this repository's Releases. The tools, templates and checklists around the library exist because of real friction: each one maps to a failure or delay that actually happened (see docs/PAIN_POINTS.md).

Get a kit in five minutes

  1. Download the kit's zip from Releases — the full list with one-line descriptions is the collection catalog. The zip holds the DLL, its import library, the C header, the kit's README and its license.
  2. Check the download against the SHA256SUMS.txt attached to the same release (Get-FileHash in PowerShell). Binaries are unsigned — there is no code-signing certificate — so Windows may show a SmartScreen prompt on first use.
  3. Call it. Drop the DLL next to your program. Works from C, C++, C#, Rust, Python, PowerShell — anything with C interop. Every kit has a runnable Python example in examples/, the flagship SettingsKit also has a C# one (binding generated by BridgeKit), and the Releases page carries a bindings pack with BridgeKit-generated C# and Rust bindings for every kit.

Which kit do I need?

Your job Kit
Settings files that survive crashes and version changes SettingsKit
One log format for every app LogKit
Watch a folder for changes WatchKit
ZIP / TAR archives ArchiveKit
Read or write PDFs PDFKit
Thumbnails for any file type ThumbKit
Notifications / toasts without WinRT pain NotifyKit
Launch and supervise child processes ProcessKit
Background jobs with progress and ETA JobKit
HTTP(S) downloads you can trust NetKit
Self-update checks UpdateKit
Store secrets in Credential Manager / DPAPI VaultKit
Crash dumps with a readable sidecar CrashKit
C# or Rust bindings for any kit, generated not hand-copied BridgeKit

The other twenty kits — files, paths, registry, shell, clipboard, media probing, UI automation and more — are in the catalog.

The kit library

The 36 kits live in this repository, each in its own folder under kits/ with its source, header, tests and README. One CI workflow (kits-ci) gates every kit on every change; one release workflow (kits-release) publishes any kit — or the whole collection in a single run — from this repository. The kits were merged here on 2026-11-01 from their standalone repositories (see docs/MIGRATION.md); those repositories are gone, and this repository is now the kits' only home — source, issues and downloads all live here.

  • ArchiveKit — Create, list, test and extract ZIP and TAR archives from any language that can call C — zero dependencies, DEFLATE codec built in. DLL #3 in the Windows DLL Collection
  • BridgeKit — Verified C# and Rust binding generator for the DLL collection, generated from the kits' own headers. Zero-dependency Rust CLI tool.
  • ClipKit — Clipboard text and file-list access plus change detection, over a JSON C ABI. Zero-external-dependency Rust DLL.
  • CrashKit — DLL #10 of Sean's Windows library collection: crash capture (minidump + JSON sidecar) and structured logging behind a small C ABI (MIT)
  • DiagKit — One-call diagnostics bundles (logs, dumps, versions, hashes) in a single zip with a JSON manifest. Zero-external-dependency Rust DLL, JSON in/out over a C ABI.
  • EmbedKit — Local semantic search behind one clean C ABI — text embeddings via runtime-loaded ONNX Runtime, cosine vector index built in. DLL #12 in the Windows DLL Collection.
  • FastSearch — Instant file search for Windows: build an index once, search it in milliseconds, from any language that can call C. DLL #2 in the Windows DLL Collection
  • FileMetaKit — File metadata toolkit behind a small C ABI: read, edit and compare metadata across images, audio, video and documents (WinDevKit DLL #30)
  • FileOpsKit — File operation engine behind a small C ABI: copy, move, rename and delete jobs with progress, cancellation, conflict policies, retries and undo (WinDevKit DLL #27)
  • FixtureKit — Deterministic test-fixture file generator (images, audio, archives, corrupt variants). Zero-external-dependency Rust DLL, JSON in/out over a C ABI.
  • HardwareInfo — Hardware inventory behind one clean C ABI — CPU, GPU, memory, disks, monitors, network, battery. DLL #16 in the Windows DLL Collection
  • ImageKit — Image decode, transform, and encode behind one clean C ABI — PNG/BMP in pure Rust
  • InstanceKit — Single-instance mutex with named-pipe argument forwarding, over a JSON C ABI. Zero-external-dependency Rust DLL.
  • JobKit — Background-work engine behind a small C ABI — progress %, ETA, pause/resume, cooperative cancellation (WinDevKit DLL #20)
  • LinkKit — Windows shortcut (.lnk) create, read and update including AppUserModelID, over a JSON C ABI. Zero-external-dependency Rust DLL.
  • LogKit — Structured, rolling, crash-safe logging in one house format behind a small C ABI (WinDevKit DLL #18)
  • MediaKit — Pure-Rust media probing — duration, codecs and streams for WAV, MP3, FLAC, Ogg, MP4, Matroska and AVI (WinDevKit DLL #25)
  • NetKit — Hardened HTTP(S) client behind a small C ABI — policy-checked redirects and retries, size caps, digest-verified downloads, no cert bypass
  • NotifyKit — Tray notifications and balloon alerts without WinRT, plus a coalescing notification queue (WinDevKit DLL #24)
  • OCRKit — Offline OCR behind one clean C ABI — vendored Tesseract engine, image in, text + confidence JSON out. DLL #13 in the Windows DLL Collection.
  • PDFKit — PDF parsing, text extraction and generation behind one clean C ABI — pure Rust, zero dependencies.
  • PathKit — Long-path and Unicode compatibility layer behind a small C ABI: path normalization, validation and conversion with plain-language errors (WinDevKit DLL #28)
  • ProcessKit — Child-process launch and supervision behind a small C ABI — captured output, timeouts, job-object tree kill, elevation rules (WinDevKit DLL #19)
  • ProviderKit — File provider adapter SDK behind a small C ABI: browse local disks, archives and custom providers through one interface (WinDevKit DLL #32)
  • RegKit — Registry read, write and list with undo manifests, over a JSON C ABI. Zero-external-dependency Rust DLL.
  • RenameKit — Batch rename and transform engine behind a small C ABI: preview, validate and apply bulk renames with collision detection and rollback (WinDevKit DLL #31)
  • SettingsKit — Atomic settings files with schema versioning and migrations behind a small C ABI (WinDevKit DLL #17)
  • ShellInteropKit — Windows Shell interop wrapper behind a small C ABI: typed file info, icons, verbs and properties without raw shell boilerplate (WinDevKit DLL #34)
  • ShellKit — Safe Windows shell integration — context-menu verbs, file associations, protocol handlers as plan + apply with backup (WinDevKit DLL #23)
  • SignKit — Authenticode inspection and verification helpers for PE files — verify only, no signing (WinDevKit DLL #26)
  • ThumbKit — Thumbnail and preview pipeline behind a small C ABI: pluggable generators, a bounded LRU cache and asynchronous retrieval (WinDevKit DLL #29)
  • TimeKit — DLL #11 of Sean's Windows library collection: IANA timezones and civil time done correctly (DST gap/overlap-safe) behind a small C ABI (MIT)
  • UiProbeKit — UI Automation inspection and actions (window and control trees, invoke, set value) over a JSON C ABI. Zero-external-dependency Rust DLL.
  • UpdateKit — Self-update behind one clean C ABI — version-checked manifest, verified downloads, staged packages
  • VaultKit — DLL #9 of Sean's Windows library collection: secrets storage via DPAPI + Credential Manager behind a simple C ABI (MIT)
  • WatchKit — Folder change and cache coordinator behind a small C ABI: coalesced change events and self-invalidating folder caches (WinDevKit DLL #33)

Five more family members were never merged and stay in their own repositories — DocConvert, SQLiteSuperBuild, Whisper, WinRecovery and WinUIHelpers are listed with live download links at the end of the catalog.

Tools and templates

  • tools/gate.sh / tools/gate.ps1 — the full local quality gate: fmt, clippy on both host and x86_64-pc-windows-msvc targets, the full test suite, windows check on all targets. Every step is annotated with the failure it has caught.
  • tools/catalog.py — generates docs/CATALOG.md from the kits' own folders and versions, and checks it in CI, so the catalog can never again promise downloads that do not exist.
  • tools/publish.py — publish files to GitHub via the Contents API, safely: plain content (never base64), per-file calls, ~105 KB size guard, workflow-path refusal with the reason, automatic SHA handling, and SHA-256 read-back verification. --dry-run and --files-from git.
  • tools/scaffold-dll.py — start a new DLL in the house style (WinRecovery pattern) in one command.
  • tools/verify.py, tools/fixtures.py, tools/release-evidence.py, tools/rea-summary.py — a portable verification runner, filesystem-fixture builder, and release-evidence tools.
  • templates/ci.yml — canonical windows-latest CI (add via browser UI; the GitHub App can't write workflow files).
  • templates/dll-skeleton/ — zero-dependency Rust cdylib skeleton: panic-proof FFI, thread-local last-error, JSON helpers, #[link]- annotated platform layer, C header.
  • templates/app-manifests/ — per-monitor-v2 DPI, long-path aware app manifest + dependency-free embed snippet.
  • templates/checklists/ — on-machine verification and release lists.
  • templates/design/command-deck-tokens.json — the chosen house design direction as portable tokens.
  • templates/a11y/explain-pattern.md — the tooltip/accessible-name pattern.

AI-assist suite (shipped 2026-10-24)

Standalone tools (Python 3, standard library only, MIT) built from the pain points in docs/PAIN_POINTS.md (#26–#32) — each exists to make an AI development agent faster and less error-prone:

  • PublishPilot — publish preflight (size/base64/CRLF/execute-bit/workflow guards), manifest, and hash read-back verification.
  • RepoRadar — cross-repo status snapshot plus SyncGuard, the pre-publish check that local HEAD matches live remote HEAD.
  • FieldVerify — on-machine verification checklists run in one sitting, with an evidence bundle (results, report, logs) per run.
  • ContextPack — one compact, AI-ready brief per repo: stack, pinned versions, license read from the file itself, gate commands, docs.
  • GateRunner — one gate.toml runs any stack's quality gate in order, with progress %, ETA, and warnings for known-dangerous gate patterns.

Two earlier suite tools (CaptureKit, ForAISearch) have been retired; their repositories are no longer online.

Roadmap

See docs/ROADMAP.md. In short: a shared win-common Rust crate, a VM verification kit, and a packaging kit remain open; the collection, its catalog and its release machinery are done.

Project documents

License

MIT.

About

Shared development resources for Windows desktop software — quality gates, a hardened GitHub publisher, scaffolding and templates — plus a 34-kit library of Rust Windows DLLs behind a C ABI (MIT), in one monorepo with full CI.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages