NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #178 most downloaded on pub.dev
A modern, type-safe Dart API for accessing and managing the Windows Registry.
Last release 6 months ago
11 Apr 2026
Release timing varies
gaps range from 5 weeks to 12 months
Most releases are documented
notes for 16 of 19 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
19 releases · first in 2022
One column per quarter.
3.0.3 - 2026-04-11 📦 Dependencies Lower minimum Dart SDK to 3.10
Lower minimum Dart SDK to 3.10.
halildurmus/win32 monorepo.Allow package:meta versions from 1.17.0 up to but not including 2.0.0 to ensure compatibility with a wider range of Dart SDK versions.
package:meta versions from 1.17.0 up to but not including 2.0.0 to
ensure compatibility with a wider range of Dart SDK versions.This release introduces a major overhaul of the API with improved type safety, and powerful new capabilities.
This release introduces a major overhaul of the API with improved type safety, and powerful new capabilities.
The package now offers transaction support, enhanced monitoring, and a more intuitive interface for managing registry keys and values.
Key breaking changes include:
API Restructuring:
Registry class entirely. Static methods like Registry.openPath()
are no longer available.RegistryHive enum. Use predefined top-level fields instead:
RegistryHive.localMachine → LOCAL_MACHINERegistryHive.currentUser → CURRENT_USERRegistryHive.classesRoot → CLASSES_ROOTRegistryHive.allUsers → USERSRegistryHive.performanceData → PERFORMANCE_DATARegistryHive.currentConfig → CURRENT_CONFIGAccessRights → RegistryAccess:
readOnly → readwriteOnly → writeallAccess → allnotify, readWrite| operator.RegistryKey:
Registry.openPath(RegistryHive.localMachine, path: keyPath)LOCAL_MACHINE.open(keyPath)getBinaryValue() → getBinary()getIntValue() → getInt()getStringValue() → getString()getStringArrayValue() → getMultiString()createKey() → create()deleteKey() → removeSubkey()deleteValue() → removeValue()renameSubkey() → rename()create() and open() now accept a RegistryOpenConfig parameter for
fine-grained control of access rights, options, and transactions.onChanged() stream functionality replaced with RegistryChangeMonitor
class.RegistryValue:
name parameter. Value names are now
passed directly to setValue():
RegistryValue.string('MyValue', 'data')key.setValue('MyValue', RegistryValue.string('data')) or with dot
shorthand syntax: key.setValue('MyValue', const .string('data'))int32() → dword()int64() → qword()stringArray() → multiString()RegistryValueType:
int32 → dwordint64 → qwordstringArray → multiStringvalue → rawfromWin32() factory with fromRaw().Transaction Support:
Transaction class enables atomic registry operations.Transaction instance via RegistryOpenConfig to perform
multiple operations that can be committed or rolled back as a unit.Enhanced Registry Monitoring:
RegistryChangeMonitor class provides isolate-backed, stream-based
monitoring of registry key changes.onChanged() stream approach with more robust
error handling and resource management.Configuration Objects:
RegistryOpenConfig: Centralizes parameters for opening and creating
keys (access rights, creation behavior, options, transactions).RegistryOpenOptions: Type-safe wrapper for native registry options
(nonVolatile, volatile, createLink, backupRestore, etc.).New Key Management Methods:
removeTree(): Recursively deletes all subkeys and values within a key
without deleting the key itself.removeValues(): Deletes all values under a key without affecting
subkeys.3.11.0.Bump win32 from 5.8.0 to 5.11.0 by @halildurmus in #30
Export AccessRights enum (#26) -
Deprecated getValueAsInt and getValueAsString methods in favor of the new type-specific methods.
This release introduces significant changes to the API with a streamlined structure, new methods for specific registry data handling, and enhanced support for monitoring registry key changes.
AccessRights:
win32Value field renamed to value.Registry:
abstract final class.performanceData static getter.RegistryHive:
win32Value field renamed to value.RegistryKey:
final class.RegistryValue:
sealed class.fromWin32 factory constructor.toWin32 getter.data field.RegistryValueType:
win32Value field renamed to value.unknown value.win32Type getter.Registry Hive Construction:
RegistryHive.fromWin32 factory constructor for creating hives based
on Win32 constants.Enhanced Data Retrieval:
RegistryKey: getBinaryValue,
getIntValue, getStringValue, and getStringArrayValue for retrieving
data in specific formats.getValueAsInt and getValueAsString methods in favor of the
new type-specific methods.Registry Change Notifications:
RegistryKey.onChanged stream for monitoring registry key
changes, with optional subkey tracking.Typed Registry Values:
RegistryValue for each registry value
type, enhancing clarity and simplifying data handling.Registry Value Type Construction:
RegistryValueType.fromWin32 factory constructor to handle value type
creation based on Win32 constants.3.5.0.Fix issue where creating REG_SZ or REG_EXPANDED_SZ string registry values resulted in malformed data. The null terminator for string values was incorr
REG_SZ or REG_EXPANDED_SZ string registry values
resulted in malformed data. The null terminator for string values was
incorrectly encoded as a single byte instead of the required two bytes for
UTF-16 encoding (#22, thanks to @dancarrollg).Fix issue where RegistryValue.data for binary-type registry values might be freed before being read (#19, thanks @tylerlacey).
RegistryValue.data for binary-type registry values might be
freed before being read (#19, thanks @tylerlacey).3.4.0Bump minimum required Dart SDK version to 3.3.0
3.3.0- Improved code quality. - Improved documentation.
- Update dependency constraints.
Add recursive named option to method deleteKey() of RegistryKey (thanks @Zekfad)
recursive named option to method deleteKey() of RegistryKey (thanks
@Zekfad)Update ffi dependency constraints to >=1.1.2 <3.0.0.
ffi dependency constraints to >=1.1.2 <3.0.0.- Minor tweaks to documentation.
[2.0.0]: https://github.com/halildurmus/win32_registry/compare/v1.1.5...v2.0.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →