[package] name = "objdiff-core" version.workspace = true edition.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true repository.workspace = true readme = "README.md" description = """ A local diffing tool for decompilation projects. """ documentation = "https://docs.rs/objdiff-core" [lib] crate-type = ["cdylib", "rlib"] [features] all = ["config", "dwarf", "mips", "ppc", "x86", "arm", "arm64", "bindings"] any-arch = ["config", "dep:bimap", "dep:strum", "dep:similar", "dep:flagset", "dep:log", "dep:memmap2", "dep:byteorder", "dep:num-traits"] # Implicit, used to check if any arch is enabled config = ["dep:bimap", "dep:globset", "dep:semver", "dep:serde_json", "dep:serde_yaml", "dep:serde", "dep:filetime"] dwarf = ["dep:gimli"] mips = ["any-arch", "dep:rabbitizer"] ppc = ["any-arch", "dep:cwdemangle", "dep:cwextab", "dep:ppc750cl"] x86 = ["any-arch", "dep:cpp_demangle", "dep:iced-x86", "dep:msvc-demangler"] arm = ["any-arch", "dep:cpp_demangle", "dep:unarm", "dep:arm-attr"] arm64 = ["any-arch", "dep:cpp_demangle", "dep:yaxpeax-arch", "dep:yaxpeax-arm"] bindings = ["dep:serde_json", "dep:prost", "dep:pbjson", "dep:serde", "dep:prost-build", "dep:pbjson-build"] wasm = ["bindings", "any-arch", "dep:console_error_panic_hook", "dep:console_log", "dep:wasm-bindgen", "dep:tsify-next", "dep:log"] [package.metadata.docs.rs] features = ["all"] [dependencies] anyhow = "1.0" bimap = { version = "0.6", features = ["serde"], optional = true } byteorder = { version = "1.5", optional = true } filetime = { version = "0.2", optional = true } flagset = { version = "0.4", optional = true } log = { version = "0.4", optional = true } memmap2 = { version = "0.9", optional = true } num-traits = { version = "0.2", optional = true } object = { version = "0.36", features = ["read_core", "std", "elf", "pe"], default-features = false } pbjson = { version = "0.7", optional = true } prost = { version = "0.13", optional = true } serde = { version = "1.0", features = ["derive"], optional = true } similar = { version = "2.6", default-features = false, optional = true } strum = { version = "0.26", features = ["derive"], optional = true } wasm-bindgen = { version = "0.2", optional = true } tsify-next = { version = "0.5", default-features = false, features = ["js"], optional = true } console_log = { version = "1.0", optional = true } console_error_panic_hook = { version = "0.1", optional = true } # config globset = { version = "0.4", features = ["serde1"], optional = true } semver = { version = "1.0", optional = true } serde_json = { version = "1.0", optional = true } serde_yaml = { version = "0.9", optional = true } # dwarf gimli = { version = "0.31", default-features = false, features = ["read-all"], optional = true } # ppc cwdemangle = { version = "1.0", optional = true } cwextab = { version = "1.0.2", optional = true } ppc750cl = { version = "0.3", optional = true } # mips rabbitizer = { version = "1.12", optional = true } # x86 cpp_demangle = { version = "0.4", optional = true } iced-x86 = { version = "1.21", default-features = false, features = ["std", "decoder", "intel", "gas", "masm", "nasm", "exhaustive_enums"], optional = true } msvc-demangler = { version = "0.10", optional = true } # arm unarm = { version = "1.6", optional = true } arm-attr = { version = "0.1", optional = true } # arm64 yaxpeax-arch = { version = "0.3", optional = true } yaxpeax-arm = { version = "0.3", optional = true } [build-dependencies] prost-build = { version = "0.13", optional = true } pbjson-build = { version = "0.7", optional = true }