windows-erg 0.1.0

Ergonomic, idiomatic Rust wrappers for Windows APIs
Documentation
[package]

name = "windows-erg"

version = "0.1.0"

edition = "2024"

rust-version = "1.90"

authors = ["Samuel Garces <samuel.garces@protonmail.com>"]

license = "MIT"

description = "Ergonomic, idiomatic Rust wrappers for Windows APIs"

repository = "https://github.com/secsamdev/windows-erg"

documentation = "https://docs.rs/windows-erg"

readme = "README.md"

keywords = ["windows", "api", "ergonomic", "system", "process"]

categories = ["os::windows-apis", "api-bindings"]

include = ["src/**", "examples/**", "README.md", "LICENSE", "Cargo.toml"]



[package.metadata.docs.rs]

default-target = "x86_64-pc-windows-msvc"

targets = ["x86_64-pc-windows-msvc", "aarch64-pc-windows-msvc"]



[dependencies]

# Core Windows API bindings

windows = { version = "0.58", features = [

    # Kernel32 - Core system functions

    "Win32_System_Threading",

    "Win32_System_Diagnostics_Debug",

    "Win32_System_Diagnostics_ToolHelp",

    "Win32_System_Environment",

    "Win32_System_ProcessStatus",

    "Win32_System_Memory",

    "Win32_System_SystemInformation",

    "Win32_System_Registry",

    "Win32_System_Kernel",

    "Win32_System_Pipes",

    "Win32_System_SystemServices",

    "Win32_System_Services",

    "Win32_System_IO",

    "Win32_System_Ioctl",

    "Win32_System_LibraryLoader",

    

    # WDK - Kernel mode APIs

    "Wdk_Foundation",

    "Wdk_Storage_FileSystem",

    "Wdk_System_Threading",

    

    # Security

    "Win32_Security",

    "Win32_Security_Authorization",

    

    # Event Log & ETW

    "Win32_System_EventLog",

    "Win32_System_Diagnostics_Etw",

    "Win32_System_Time",

    

    # File System

    "Win32_Storage_FileSystem",

    

    # Network

    "Win32_NetworkManagement_IpHelper",

    "Win32_NetworkManagement_Ndis",

    "Win32_NetworkManagement_WindowsFirewall",

    "Win32_Networking_WinSock",

    "Win32_Networking_WinInet",

    "Win32_Networking_WinHttp",

    

    # Foundation

    "Win32_Foundation",



    # UI and desktop windowing

    "Win32_UI_Shell",

    "Win32_UI_WindowsAndMessaging",

    "Win32_Graphics_Gdi",

    "Win32_Graphics_Dwm",

    

    # Other

    "Win32_System_Com",

] }



# XML parsing for Event Log

quick-xml = { version = "0.39", features = ["serialize"] }



[dev-dependencies]

tempfile = "3.8"



[features]

default = []





# Serialization support (extends quick-xml with struct mapping)

serde = ["dep:serde"]



# All features

full = ["serde"]



[dependencies.serde]

version = "1.0"

features = ["derive"]

optional = true



[profile.release]

opt-level = 3

lto = true

codegen-units = 1

strip = true



[profile.dev]

opt-level = 0



# Examples configuration

[[example]]

name = "registry_basics"

path = "examples/registry_basics.rs"



[[example]]

name = "registry_write"

path = "examples/registry_write.rs"



[[example]]

name = "registry_convenience"

path = "examples/registry_convenience.rs"



[[example]]

name = "registry_enumerate"

path = "examples/registry_enumerate.rs"



[[example]]

name = "registry_safe_access"

path = "examples/registry_safe_access.rs"



[[example]]

name = "process_basics"

path = "examples/process_basics.rs"



[[example]]

name = "process_monitoring"

path = "examples/process_monitoring.rs"



[[example]]

name = "process_metrics"

path = "examples/process_metrics.rs"



[[example]]

name = "process_tree"

path = "examples/process_tree.rs"



[[example]]

name = "process_spawn_parented"

path = "examples/process_spawn_parented.rs"



[[example]]

name = "registry_operations"

path = "examples/registry_operations.rs"



[[example]]

name = "process_mitigation"

path = "examples/process_mitigation.rs"



[[example]]

name = "raw_file_copy"

path = "examples/raw_file_copy.rs"



[[example]]

name = "service_basics"

path = "examples/service_basics.rs"



[[example]]

name = "service_enumerate"

path = "examples/service_enumerate.rs"



[[example]]

name = "system_snapshot"

path = "examples/system_snapshot.rs"



[[example]]

name = "desktop_windows"

path = "examples/desktop_windows.rs"



[[example]]

name = "desktop_tray_notification"

path = "examples/desktop_tray_notification.rs"



[[example]]

name = "pipes_list"

path = "examples/pipes_list.rs"