ci Package: win32_registry Publisher: halildurmus.dev Language: Dart License: BSD-3-Clause codecov

A modern, type-safe Dart API for accessing and managing the Windows Registry.

This package builds on top of the package:win32 and provides a high-level abstraction over native registry APIs. It eliminates the need to work directly with FFI, raw pointers, or low-level Win32 calls while preserving performance and correctness.

✨ Features

  • Key Management — Create, open, delete, and rename registry keys.
  • Typed Values — Read and write strings, integers, binary data, and multi-string values using strongly typed APIs.
  • Change Monitoring — Listen for registry modifications.
  • Metadata Queries — Inspect subkeys, values, sizes, and timestamps.
  • Transaction Support — Perform registry operations atomically.

⚡ Quick Example

Reads the Windows build number from the registry:

import 'package:win32_registry/win32_registry.dart';

void main() {
  final key = LOCAL_MACHINE.open(
    r'Software\Microsoft\Windows NT\CurrentVersion',
  );
  final buildNumber = key.getString('CurrentBuild');
  if (buildNumber != null) {
    print('Windows build number: $buildNumber');
  }
  key.close();
}

📝 Documentation

Full API reference is available here:

👉 API Reference.

Additional usage examples are located in the example directory.

🐞 Features and Bugs

If you encounter bugs or need additional functionality, please file an issue.

Libraries

win32_registry
A Dart library for accessing and managing Windows Registry, providing easy-to-use classes and collections to read, write, and monitor registry values.