[package] name = "lancelot" description = "binary analysis framework for x32/x64 PE files" license = "Apache-2.0" version = "0.8.6" authors = ["Willi Ballenthin "] edition = "2021" homepage = "https://github.com/williballenthin/lancelot" repository = "https://github.com/williballenthin/lancelot" [badges] travis-ci = { repository = "https://github.com/williballenthin/lancelot", branch = "master" } [dependencies] log = "0.4" goblin = { version = "0.6", features = ["std", "pe32"], default-features = false } object = "0.30" # use patched zydis-rs locally for wasm support, and upstream v3.0 when publishing to crates.io zydis = { git = "https://github.com/williballenthin/zydis-rs", branch = "nightly/wasm", features = ["wasm", "serialization"], optional = true, version = "3" } byteorder = "1" bitflags = "1" lazy_static = "1" anyhow = "1" thiserror = "1" regex = "1" smallvec = "1" widestring = "1.0" smol_str = "0.1" ansi_term = "0.12" # chrono, and fern are only needed by tests, but because of the need for a feature named # test, they also have to be optional dependencies as well. fern = { version = "0.6", optional = true } chrono = { version = "0.4", features = ["clock"], default-features = false, optional = true} # needed for emu bitvec = { version = "1", optional = true } # needed for flirt lancelot-flirt = { path = "../flirt", version = "0.8.6", optional = true} [dev-dependencies] criterion = "0.4" chrono = { version = "0.4", features = ["clock"], default-features = false } fern = "0.6" unicorn-engine = "2.0.0" dynasm = "1.0.1" dynasmrt = "1.0.1" [[bench]] name = "core" harness = false required-features = ["emulator", "flirt", "disassembler", "test"] [features] default = ["emulator", "flirt", "disassembler"] # The reason we do this is because doctests don't get cfg(test) # See: https://github.com/rust-lang/cargo/issues/4669 test = ["chrono", "fern", "emulator"] flirt = ["lancelot-flirt", "disassembler"] emulator = ["bitvec", "zydis"] disassembler = ["zydis"]