clrmeta
ECMA-335 CLI/.NET metadata parsing library for Rust.
Installation
Add to your Cargo.toml:
[]
= "0.1"
Features
- Parse BSJB metadata root and stream headers
- Access heaps: #Strings, #US, #GUID, #Blob
- Parse metadata tables: Module, TypeDef, TypeRef, MethodDef, Assembly, AssemblyRef, etc.
- High-level API for common queries (assembly info, types, methods)
- No PE dependency - works with raw metadata bytes
Usage
use Metadata;
// Parse metadata from raw bytes (e.g., from PE's CLR data directory)
let metadata = parse?;
println!;
if let Some = metadata.assembly
for type_def in metadata.types
Integration with portex
This crate is designed to work with portex for parsing .NET assemblies from PE files:
use PE;
use Metadata;
let pe = PEfrom_file?;
if let Some = pe.cli_header?
References
License
MIT