PackageTrack
Sign in Get early access

winget_dart

Dart FFI bindings for WinGet (Windows Package Manager). Search, install, upgrade, and uninstall packages with async progress on x64 and ARM64.

0.4.0 17K downloads/mo #2366 most downloaded on pub.dev jwinarske/winget_dart

What this package is like to depend on

Last release 10 days ago

13 Aug 2026

Ships on a steady schedule

a new release about every 2 months

Nearly every release is documented

notes for 4 of 4 stable releases

Nothing withdrawn

no release was ever pulled

4 months old

4 releases · first in 2026

4 releases in the last 12 months

see the full history below

Release timeline

4 releases · Apr 2026 to Aug 2026
Release Pre-release

Releases

latest 4
  1. 0.4.0 13 Aug 2026
    Release notes
    • Breaking: migrate the native build hook from hooks 1.x to 2.x (and
      code_assets to 1.2.x). hooks 2.x requires Dart >=3.10, so the SDK lower
      bound rises from 3.6.0 — consumers on Dart 3.6–3.9 should stay on 0.3.x. The
      hook's behaviour is unchanged (it still builds winget_nc.dll via CMake and
      skips cleanly when its prerequisites are absent); the migration is a dependency
      bump only.
    • Drop the native_toolchain_c dependency: it was declared but never imported
      (the hook drives CMake directly rather than CBuilder).
    Open source →
    Release notes
    • Breaking: migrate the native build hook from hooks 1.x to 2.x (and code_assets to 1.2.x). hooks 2.x requires Dart >=3.10, so the SDK lower bound rises from 3.6.0 — consumers on Dart 3.6–3.9 should stay on 0.3.x. The hook's behaviour is unchanged (it still builds winget_nc.dll via CMake and skips cleanly when its prerequisites are absent); the migration is a dependency bump only.
    • Drop the native_toolchain_c dependency: it was declared but never imported (the hook drives CMake directly rather than CBuilder).
    Open source →
  2. 0.3.1 21 Jun 2026
    Release notes

    Fixes

    • Fix native DLL not found when run via dart pub global activate / dart pub global run. The @Native / @DefaultAsset code-assets approach only resolves when the hooks runner is active; globally activated packages skip it. Replaced with explicit DynamicLibrary.open() and a multi-strategy search path matching the pattern used by packagekit_dart.
    • Add resolveWingetNcPath() with fallback chain: programmatic override → WINGET_NC_LIB env var → .dart_tool/lib/%TEMP%\wg_nc_* build-hook output → next to executable → OS search path.
    • Export setWingetLibraryPath() for consumers that vendor the DLL.

    Testing

    • Add 18 unit tests for library_loader.dart covering all resolution strategies, precedence ordering, arch filtering, and edge cases.
    Open source →
  3. 0.3.0 03 Apr 2026
    Release notes

    Release 0.3.0: dartdoc coverage, example, pub.dev fixes

    Open source →
    Release notes

    Improvements

    • Add dartdoc comments to all public API elements (models, exceptions, WingetBridge interface, and WgClient methods)
    • Add example/example.dart for pub.dev example tab
    • Shorten package description to meet pub.dev 60–180 character guideline
    • Bump minimum SDK constraint to >=3.6.0 for build hook support
    Open source →
  4. 0.2.0 02 Apr 2026
    Release notes

    the hook/build.dart (Dart Build Hook) requires a minimum SDK constraint
    of 3.6.0.

    joel.winarske [email protected]

    Open source →
    Release notes

    Features

    • Unpackaged COM activation for non-MSIX (desktop/console) apps
    • Microsoft.Management.Deployment interop DLL bundling for x64 and ARM64
    • Flutter example app (example/winget_catalog) with Fluent UI, Riverpod, and live WinGet integration (search, install, upgrade, uninstall, updates)
    • README badges for pub.dev, CI status, Codecov, and license
    • Screenshot of Flutter example in README

    CI & quality

    • Codecov integration with CODECOV_TOKEN, fail_ci_if_error, and codecov.yml for server-side generated-file exclusion
    • Coverage threshold enforcement at 60% in CI
    • --report-on=lib and generated-file filtering in lcov pipeline
    • .pubignore to exclude build artifacts and Flutter example from published package
    • .gitignore at project root
    • Exclude Flutter example from root dart analyze scope
    • Unit test coverage improved from 89.6% to 97.2%: added tests for retry backoff, negative connect handle, listCatalogs/simulateInstall errors, cancel, streaming cancelled/error paths, model toString() methods, and MessageDecoder.messageToString unexpected type

    Breaking changes

    • FakeWingetBridge.stubIsAvailableFn added; internal _available field changed from bool to bool Function() (no public API impact)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive