24 breaking releases

0.56.0 Apr 12, 2024
0.55.0 Mar 6, 2024
0.54.0 Feb 27, 2024
0.52.0 Nov 15, 2023
0.34.0 Mar 15, 2022

#443 in Parser implementations

Download history 12664/week @ 2024-02-02 13357/week @ 2024-02-09 15107/week @ 2024-02-16 14521/week @ 2024-02-23 15629/week @ 2024-03-01 15110/week @ 2024-03-08 14851/week @ 2024-03-15 14273/week @ 2024-03-22 14327/week @ 2024-03-29 14052/week @ 2024-04-05 14535/week @ 2024-04-12 17506/week @ 2024-04-19 17162/week @ 2024-04-26 18307/week @ 2024-05-03 20610/week @ 2024-05-10 19804/week @ 2024-05-17

78,607 downloads per month
Used in 107 crates (via windows-bindgen)

MIT/Apache

90KB
2K SLoC

Windows metadata reader

The windows-metadata crate provides a fast reader for Windows metadata files based on the ECMA-335 file format.

Start by adding the following to your Cargo.toml file:

[dependencies.windows-metadata]
version = "0.56"

Read metadata as needed:

use windows_metadata::*;

fn main() {
    let bytes = std::fs::read(r#"C:\Windows\System32\WinMetadata\Windows.Foundation.winmd"#)
        .expect("File not found");

    let file = File::new(bytes).expect("Invalid metadata");

    let reader = Reader::new(vec![file]);

    for def in reader.get_type_def("Windows.Foundation", "IAsyncInfo") {
        println!("{}", def.name());

        for method in def.methods() {
            println!("{}", method.name());
        }
    }
}

No runtime deps