[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]
windows = { version = "0.58", features = [
"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_Foundation",
"Wdk_Storage_FileSystem",
"Wdk_System_Threading",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_System_EventLog",
"Win32_System_Diagnostics_Etw",
"Win32_System_Time",
"Win32_Storage_FileSystem",
"Win32_NetworkManagement_IpHelper",
"Win32_NetworkManagement_Ndis",
"Win32_NetworkManagement_WindowsFirewall",
"Win32_Networking_WinSock",
"Win32_Networking_WinInet",
"Win32_Networking_WinHttp",
"Win32_Foundation",
"Win32_UI_Shell",
"Win32_UI_WindowsAndMessaging",
"Win32_Graphics_Gdi",
"Win32_Graphics_Dwm",
"Win32_System_Com",
] }
quick-xml = { version = "0.39", features = ["serialize"] }
[dev-dependencies]
tempfile = "3.8"
[features]
default = []
serde = ["dep:serde"]
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
[[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"