pers 0.1.0

Parser for Windows Portable Executable (PE) files that borrows the file data, a Rust port of PeNet
Documentation
[package]
name = "pers"
version = "0.1.0"
edition = "2024"
description = "Parser for Windows Portable Executable (PE) files that borrows the file data, a Rust port of PeNet"
license = "MIT OR Apache-2.0"
authors = ["Stefan Hausotte"]
repository = "https://github.com/secana/PeRs"
homepage = "https://github.com/secana/PeRs"
documentation = "https://docs.rs/pers"
keywords = ["pe", "portable-executable", "parser", "windows", "authenticode"]
categories = ["parser-implementations", "no-std"]
readme = "README.md"
include = ["/src/**/*.rs", "/README.md", "/LICENSE-APACHE", "/LICENSE-MIT"]

[features]
default = ["std", "mmap", "resources", "dotnet", "authenticode"]
std = ["hex/std", "uuid/std", "thiserror/std"]
mmap = ["std", "dep:memmap2"]
resources = []
dotnet = []
authenticode = ["dep:der", "dep:x509-cert", "dep:rsa", "dep:p256", "dep:p384"]

[dependencies]
bitflags = "2.13.2"
der = { version = "0.7.10", default-features = false, features = ["alloc", "oid"], optional = true }
hex = { version = "0.4.3", default-features = false, features = ["alloc"] }
md-5 = { version = "0.11.0", default-features = false }
memmap2 = { version = "0.9.11", optional = true }
p256 = { version = "0.13", default-features = false, features = ["ecdsa"], optional = true }
p384 = { version = "0.13", default-features = false, features = ["ecdsa"], optional = true }
rsa = { version = "0.9.10", default-features = false, optional = true }
sha1 = { version = "0.11.0", default-features = false }
sha2 = { version = "0.11.1", default-features = false }
thiserror = { version = "2.0.21", default-features = false }
uuid = { version = "1.28.0", default-features = false }
x509-cert = { version = "0.2.5", default-features = false, optional = true }
zerocopy = { version = "0.8.63", features = ["derive"] }

[lints.rust]
# Doc comments are written where they explain behavior, not for self-explanatory fields, variants
# and getters.
missing_docs = "allow"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[[test]]
name = "net"
path = "tests/net/main.rs"
required-features = ["dotnet"]

[[test]]
name = "resource"
path = "tests/resource/main.rs"
required-features = ["resources"]

[[test]]
name = "signature"
path = "tests/signature/main.rs"
required-features = ["authenticode"]

[[test]]
name = "mm_file"
path = "tests/mm_file/main.rs"
required-features = ["mmap"]

[[test]]
name = "pe_file"
path = "tests/pe_file/main.rs"
required-features = ["mmap", "authenticode"]