PackageTrack
Sign in Get early access

winreg

Rust bindings to MS Windows Registry API

0.56.0 205M downloads/mo #495 most downloaded on crates.io gentoo90/winreg-rs

What this package is like to depend on

Last release 5 months ago

14 Mar 2026

Release timing varies

gaps range from 2 weeks to 1.4 years

Most releases are documented

notes for 29 of 34 stable releases

1 version withdrawn

withdrawn after publishing

11 years old

35 releases · first in 2015

2 releases in the last 12 months

see the full history below

Release timeline

35 releases · Apr 2015 to Mar 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 35
  1. 0.56.0 14 Mar 2026
    Release notes
    • Breaking change: RegValue.bytes is now Cow<[u8]> and not Vec<u8> which introduces a lifetime to the structure (#64).
    • Breaking change: serialization now opens the key with DELETE, KEY_ENUMERATE_SUB_KEYS and KEY_QUERY_VALUE permissions in addition to KEY_CREATE_SUB_KEY and KEY_SET_VALUE used previously. This is required for:
    • New RegKey methods: encode_destructive() and encode_destructive_transacted() that wipe all subkeys/values of a target key before writing to it (#76).
    • New RegKey methods: enum_keys_os_string() and enum_values_os_string() return iterators that use OsString for key/value names (#80).
    • Add consts for predefined registry keys: HKCR, HKCU, HKLM, HKU and HKCC.
    • Implement std traits FromRawHandle, IntoRawHandle and AsRawHandle for Transaction.
    • Set windows-sys version to >=0.59, <=0.61 according to its README recomendation.
    Open source →
  2. 0.55.0 12 Jan 2025
    Release notes
    • Breaking change: Increate MSRV to 1.60
    • Breaking change: Upgrade windows-sys to version 0.59 (#77)
    Open source →
    Release notes
    • Breaking change: Increate MSRV to 1.60
    • Breaking change: Upgrade windows-sys to version 0.59 (#77)
    Open source →
  3. 0.54.0 12 Jan 2025
    Release notes
    • Breaking change: Migrate to the 2021 edition of Rust (MSRV 1.56)
    • Breaking change: Upgrade windows-sys to version 0.52 (closes #63, #70)
    Open source →
    Release notes
    • Breaking change: Migrate to the 2021 edition of Rust (MSRV 1.56)
    • Breaking change: Upgrade windows-sys to version 0.52 (closes #63, #70)
    Open source →
  4. 0.53.0 08 Jan 2025
    Release notes
    • Don't stop deserialization of Any due to REG_NONE (pullrequest #67, fixes #66)
    • Implement (de)serialization of Option (#56)
    • Add RegKey methods for creating/opening subkeys with custom options (#65)
    Open source →
  5. 0.52.0 19 Nov 2023
    Release notes
    • Breaking change: .commit() and .rollback() now consume the transaction (#62)
    • Add RegKey::rename_subkey() method (#58)
    • Make serialization modules public (#59)
    • Fix UB in FromRegValue for u32 and u64 (#61)
    Open source →
    Release notes
    • Breaking change: .commit() and .rollback() now consume the transaction (#62)
    • Add RegKey::rename_subkey() method (#58)
    • Make serialization modules public (#59)
    • Fix UB in FromRegValue for u32 and u64 (#61)
    Open source →
  6. 0.51.0 19 Aug 2023
    Release notes
    • Breaking change: fix std::fmt::Display implementation for RegValue (#52)
    • Add RegKey::encode_transacted() method (pullrequest #55), fixes #54)
    Open source →
  7. 0.50.0 03 Apr 2023
    Release notes
    • Breaking change: winapi-rs is not maintained any more, so migrate to Microsofts windows-sys as a backend (#48, #51)
    • Breaking change: Increase minimum supported Rust version to 1.46 since windows-sys doesn't compile with older versions
    • Replace deprecated methods from chrono (#48)
    Open source →
  8. 0.16.0 14 Mar 2026
    Release notes
    • Breaking change: RegValue.bytes is now Cow<[u8]> and not Vec<u8> which introduces a lifetime to the structure (#64).
    • Breaking change: serialization now opens the key with DELETE, KEY_ENUMERATE_SUB_KEYS and KEY_QUERY_VALUE permissions in addition to KEY_CREATE_SUB_KEY and KEY_SET_VALUE used previously. This is required for:
    • New RegKey methods: encode_destructive() and encode_destructive_transacted() that wipe all subkeys/values of a target key before writing to it (#76).
    • New RegKey methods: enum_keys_os_string() and enum_values_os_string() return iterators that use OsString for key/value names (#80).
    • Add consts for predefined registry keys: HKCR, HKCU, HKLM, HKU and HKCC.
    • Implement std traits FromRawHandle, IntoRawHandle and AsRawHandle for Transaction.
    Open source →
    Release notes
    • Breaking change: RegValue.bytes is now Cow<[u8]> and not Vec<u8> which introduces a lifetime to the structure (#64).
    • Breaking change: serialization now opens the key with DELETE, KEY_ENUMERATE_SUB_KEYS and KEY_QUERY_VALUE permissions in addition to KEY_CREATE_SUB_KEY and KEY_SET_VALUE used previously. This is required for:
    • New RegKey methods: encode_destructive() and encode_destructive_transacted() that wipe all subkeys/values of a target key before writing to it (#76).
    • New RegKey methods: enum_keys_os_string() and enum_values_os_string() return iterators that use OsString for key/value names (#80)
    • Add consts for predefined registry keys: HKCR, HKCU, HKLM, HKU and HKCC
    • Implement std traits FromRawHandle, IntoRawHandle and AsRawHandle for Transaction.
    Open source →
  9. 0.15.0 08 Jan 2025
    Release notes
    • Don't stop deserialization of Any due to REG_NONE (pullrequest #67, fixes #66)
    • Implement (de)serialization of Option (#56)
    • Add RegKey methods for creating/opening subkeys with custom options (#65)
    Open source →
    Release notes
    • Don't stop deserialization of Any due to REG_NONE (pullrequest #67, fixes #66)
    • Implement (de)serialization of Option (#56)
    • Add RegKey methods for creating/opening subkeys with custom options (#65)
    Open source →
  10. 0.14.0 19 Nov 2023
    Release notes
    • Breaking change: increase MSRV to 1.34
    • Fix UB in FromRegValue for u32 and u64 (#61)
    Open source →
    Release notes
    • Breaking change: increase MSRV to 1.34
    • Fix UB in FromRegValue for u32 and u64 (#61)
    Open source →
  11. 0.13.0 19 Nov 2023
    Release notes
    • Breaking change: .commit() and .rollback() now consume the transaction (#62)
    • Add RegKey::rename_subkey() method (#58)
    • Make serialization modules public (#59)
    Open source →
    Release notes
    • Breaking change: .commit() and .rollback() now consume the transaction (#62)
    • Add RegKey::rename_subkey() method (#58)
    • Make serialization modules public (#59)
    Open source →
  12. 0.12.0 19 Aug 2023
    Release notes
    • Breaking change: fix std::fmt::Display implementation for RegValue (#52)
    • Add RegKey::encode_transacted() method (pullrequest #55, fixes #54)
    Open source →
  13. 0.11.0 17 Feb 2023
    Release notes
    • Migrate to the 2018 edition of Rust
    • Move the code from lib.rs to separate files
    • Use cfg-if instead of build.rs to fail build on non-windows systems
    • Reimplement deserialization logic, implement [de]serialization for byte arrays (#49)
    • Fix some typos and clippy warnings
    Open source →
  14. 0.10.1 12 Sep 2021
    Release notes
    • Bump the minimal required version of winapi to 0.3.9 (required for load_app_key)
    • Reexport REG_PROCESS_APPKEY and use it in the load_app_key example
    Open source →
  15. 0.10.0 12 Sep 2021 withdrawn
    Release notes
    • Add RegKey::load_app_key() and RegKey::load_app_key_with_flags() (#30)
    • Update dev dependency rand to 0.8
    • Add Github actions
    • Fix some clippy warnings
    Open source →
  16. 0.9.0 22 May 2021
    Release notes
    • Breaking change: OsStr and OsString registry values are not NULL-terminated any more (#34, #42)
    • Refactoring: use macros for ToRegValue impls and tests for string values
    • Fix bare_trait_objects warning in the doctests
    • Add impl ToRegValue for OsString
    • Add conversion between REG_MULTI_SZ and vectors of strings (#16)
    • Fix: set minimal winapi version to 0.3.7 (earlier versions don't have impl-default and impl-debug features which we use)
    • Appveyor now checks the crate against rust-1.31.1 too
    Open source →
  17. 0.8.0 11 Dec 2020
    Release notes
    • Implement serialization of char and maps
    • Implement std::fmt::Display for RegValue
    • Make RegKey::{predef,raw_handle,enum_keys,enum_values} functions const
    • Give a better error message when compiling on platforms other than Windows (#38)
    • Tests are moved from src/lib.rs to tests/reg_key.rs
    Open source →
  18. 0.7.0 26 Feb 2020
    Release notes
    • Breaking change: remove deprecated Error::description (#28)
    • Optimize Iterator::nth() for the Enum* iterators (#29)
    Open source →
  19. 0.6.2 31 Jul 2019
    Release notes
    • Add RegKey::delete_subkey_with_flags() (#27)
    Open source →
  20. 0.6.1 17 Jul 2019
    Release notes
    • Add last_write_time field to RegKeyMetadata (returned by RegKey::query_info()) (#25).
    • Add get_last_write_time_system() and get_last_write_time_chrono() (under chrono feature) methods to RegKeyMetadata.
    Open source →
  21. 0.6.0 21 Nov 2018
    Release notes
    • Breaking change: create_subkey, create_subkey_with_flags, create_subkey_transacted and create_subkey_transacted_with_flags now return a tuple which contains the subkey and its disposition which can be REG_CREATED_NEW_KEY or REG_OPENED_EXISTING_KEY (#21).
    • Examples fixed to not use unwrap according to Rust API guidelines.
    Open source →
  22. 0.5.1 01 Jun 2018
    Release notes
    • Reexport HKEY (#15).
    • Add raw_handle method (#18).
    Open source →
  23. 0.5.0 18 Dec 2017
    Release notes
    • Breaking change: open_subkey now opens a key with readonly permissions. Use create_subkey or open_subkey_with_flags to open with read-write permissions.
    • Breaking change: features transactions and serialization-serde are now disabled by default.
    • Breaking change: serialization now uses serde instead of rustc-serialize.
    • winapi updated to 0.3.
    • Documentation fixes (#14)
    Open source →
  24. 0.4.0 31 Oct 2016
    Release notes
    • Make transactions and serialization otional features
    • Update dependencies + minor fixes (#12)
    Open source →
  25. 0.3.5 24 Apr 2016
    Release notes
    • Implement FromRegValue for OsString and ToRegValue for OsStr (#8)
    • Minor fixes
    Open source →
  26. 0.3.4 13 Mar 2016
    Release notes
    • Add copy_tree method to RegKey
    • Now checked with rust-clippy
      • no more unwraps
      • replaced to_string with to_owned
    • Fix: reading strings longer than 2048 characters (#6)
    Open source →
  27. 0.3.3 27 Nov 2015
    Release notes
    • Fix: now able to read values longer than 2048 bytes (#3)
    Open source →
  28. 0.3.2 06 Oct 2015
    Release notes
    • Fix: FromRegValue trait now requires Sized (fixes build with rust 1.4)
    Open source →
  29. 0.3.1 16 Jul 2015
    Release notes
    • Fix: bump winapi version to fix build
    Open source →
  30. 0.3.0 11 Jul 2015
    Release notes
    • Add transactions support and make serialization transacted
    • Breaking change: use std::io::{Error,Result} instead of own RegError and RegResult
    Open source →
  31. 0.2.6 27 May 2015

    Nothing published for this version

  32. 0.2.5 06 May 2015

    Nothing published for this version

  33. 0.2.0 28 Apr 2015

    Nothing published for this version

  34. 0.1.1 18 Apr 2015

    Nothing published for this version

  35. 0.1.0 17 Apr 2015

    Nothing published for this version

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