[package]
edition = "2024"
rust-version = "1.88"
name = "objdiff-core"
version = "3.7.3"
authors = ["Luke Street <luke@street.dev>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
A local diffing tool for decompilation projects.
"""
documentation = "https://docs.rs/objdiff-core"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/encounter/objdiff"
[package.metadata.docs.rs]
features = ["all"]
[features]
all = [
"bindings",
"build",
"config",
"dwarf",
"serde",
"arm",
"arm64",
"mips",
"ppc",
"x86",
"superh",
]
any-arch = [
"dep:flagset",
"dep:heck",
"dep:log",
"dep:num-traits",
"dep:prettyplease",
"dep:proc-macro2",
"dep:quote",
"dep:regex",
"dep:similar",
"dep:syn",
"dep:encoding_rs",
"demangler",
]
arm = [
"any-arch",
"dep:arm-attr",
"dep:unarm",
]
arm64 = [
"any-arch",
"dep:yaxpeax-arch",
"dep:yaxpeax-arm",
]
bindings = [
"dep:prost",
"dep:prost-build",
]
build = [
"dep:notify",
"dep:notify-debouncer-full",
"dep:reqwest",
"dep:self_update",
"dep:shell-escape",
"dep:tempfile",
"dep:time",
"dep:winapi",
]
config = [
"dep:globset",
"dep:semver",
"dep:typed-path",
]
default = ["std"]
demangler = [
"dep:cpp_demangle",
"dep:cwdemangle",
"dep:gnuv2_demangle",
"dep:msvc-demangler",
]
dwarf = [
"dep:gimli",
"dep:typed-arena",
]
mips = [
"any-arch",
"dep:rabbitizer",
]
ppc = [
"any-arch",
"dep:cwextab",
"dep:powerpc",
"dep:rlwinmdec",
]
serde = [
"dep:pbjson",
"dep:pbjson-build",
"dep:serde",
"dep:serde_json",
]
std = [
"anyhow/std",
"flagset?/std",
"log?/std",
"num-traits?/std",
"object/std",
"prost?/std",
"serde?/std",
"similar?/std",
"typed-arena?/std",
"typed-path?/std",
"dep:filetime",
"dep:memmap2",
]
superh = ["any-arch"]
x86 = [
"any-arch",
"dep:iced-x86",
]
[lib]
name = "objdiff_core"
path = "src/lib.rs"
[[test]]
name = "arch_arm"
path = "tests/arch_arm.rs"
[[test]]
name = "arch_mips"
path = "tests/arch_mips.rs"
[[test]]
name = "arch_ppc"
path = "tests/arch_ppc.rs"
[[test]]
name = "arch_x86"
path = "tests/arch_x86.rs"
[[test]]
name = "common"
path = "tests/common.rs"
[dependencies.anyhow]
version = "1.0"
default-features = false
[dependencies.arm-attr]
version = "0.2"
optional = true
[dependencies.cpp_demangle]
version = "0.5"
features = ["alloc"]
optional = true
default-features = false
[dependencies.cwdemangle]
version = "1.0"
optional = true
[dependencies.cwextab]
version = "1.1"
optional = true
[dependencies.encoding_rs]
version = "0.8.35"
optional = true
[dependencies.filetime]
version = "0.2"
optional = true
[dependencies.flagset]
version = "0.4"
optional = true
default-features = false
[dependencies.gimli]
version = "0.34.0"
features = ["read"]
optional = true
default-features = false
[dependencies.globset]
version = "0.4"
optional = true
default-features = false
[dependencies.gnuv2_demangle]
version = "0.4"
optional = true
[dependencies.iced-x86]
version = "1.21"
features = [
"decoder",
"intel",
"gas",
"masm",
"nasm",
"exhaustive_enums",
"no_std",
]
optional = true
default-features = false
[dependencies.itertools]
version = "0.15"
features = ["use_alloc"]
default-features = false
[dependencies.log]
version = "0.4"
optional = true
default-features = false
[dependencies.memmap2]
version = "0.9"
optional = true
[dependencies.msvc-demangler]
version = "0.11"
optional = true
[dependencies.notify]
version = "8.2.0"
optional = true
[dependencies.notify-debouncer-full]
version = "0.6.0"
optional = true
[dependencies.num-traits]
version = "0.2"
optional = true
default-features = false
[dependencies.object]
version = "0.39.1"
features = [
"read_core",
"elf",
"coff",
]
default-features = false
[dependencies.pbjson]
version = "0.9"
optional = true
default-features = false
[dependencies.powerpc]
version = "0.4"
optional = true
[dependencies.prost]
version = "0.14"
features = ["derive"]
optional = true
default-features = false
[dependencies.rabbitizer]
version = "2.0.0-alpha.9"
features = ["all_extensions"]
optional = true
default-features = false
[dependencies.regex]
version = "1.12"
features = []
optional = true
default-features = false
[dependencies.rlwinmdec]
version = "1.1"
optional = true
[dependencies.semver]
version = "1.0"
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
default-features = false
[dependencies.serde_json]
version = "1.0"
features = ["alloc"]
optional = true
default-features = false
[dependencies.shell-escape]
version = "0.1"
optional = true
[dependencies.similar]
version = "3.1"
features = ["hashbrown"]
optional = true
default-features = false
[dependencies.tempfile]
version = "3.23"
optional = true
[dependencies.time]
version = "0.3"
optional = true
[dependencies.typed-arena]
version = "2.0"
optional = true
default-features = false
[dependencies.typed-path]
version = "0.12"
optional = true
default-features = false
[dependencies.unarm]
version = "2.1"
optional = true
[dependencies.yaxpeax-arch]
version = "0.3"
optional = true
default-features = false
[dependencies.yaxpeax-arm]
version = "0.3"
optional = true
default-features = false
[dev-dependencies.insta]
version = "1.43"
[build-dependencies.heck]
version = "0.5"
optional = true
[build-dependencies.pbjson-build]
version = "0.9"
optional = true
[build-dependencies.prettyplease]
version = "0.2"
optional = true
[build-dependencies.proc-macro2]
version = "1.0"
optional = true
[build-dependencies.prost-build]
version = "0.14"
optional = true
[build-dependencies.quote]
version = "1.0"
optional = true
[build-dependencies.serde]
version = "1.0"
features = ["derive"]
[build-dependencies.serde_json]
version = "1.0"
[build-dependencies.syn]
version = "2.0"
optional = true
[target.'cfg(not(target_os = "linux"))'.dependencies.reqwest]
version = "0.13"
features = [
"blocking",
"json",
"multipart",
"default-tls",
]
optional = true
default-features = false
[target.'cfg(not(target_os = "linux"))'.dependencies.self_update]
version = "1.0.0-rc.3"
features = [
"reqwest",
"native-tls",
"github",
]
optional = true
default-features = false
[target.'cfg(target_os = "linux")'.dependencies.reqwest]
version = "0.13"
features = [
"blocking",
"json",
"multipart",
"rustls",
]
optional = true
default-features = false
[target.'cfg(target_os = "linux")'.dependencies.self_update]
version = "1.0.0-rc.3"
features = [
"reqwest",
"rustls",
"github",
]
optional = true
default-features = false
[target."cfg(windows)".dependencies.winapi]
version = "0.3"
features = ["winbase"]
optional = true