[package]
edition = "2024"
rust-version = "1.88"
name = "idakit"
version = "0.2.0"
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Idiomatic Rust bindings for IDA Pro's idalib kernel"
readme = "README.md"
keywords = [
"ida",
"ida-pro",
"reverse-engineering",
"decompiler",
"disassembler",
]
categories = [
"api-bindings",
"development-tools",
]
license = "MIT"
repository = "https://github.com/Xevion/idakit"
resolver = "2"
[package.metadata.docs.rs]
default-target = "x86_64-unknown-linux-gnu"
targets = []
all-features = true
[features]
serde = ["dep:postcard"]
[lib]
name = "idakit"
path = "src/lib.rs"
[[example]]
name = "accept_eula"
path = "examples/accept_eula.rs"
[[example]]
name = "actor"
path = "examples/actor.rs"
doc-scrape-examples = true
[[example]]
name = "analyze"
path = "examples/analyze.rs"
doc-scrape-examples = true
[[example]]
name = "ctree_dump"
path = "examples/ctree_dump.rs"
doc-scrape-examples = true
[[example]]
name = "edits"
path = "examples/edits.rs"
[[example]]
name = "make_fixture"
path = "examples/make_fixture.rs"
[[example]]
name = "probe_argloc"
path = "examples/probe_argloc.rs"
[[example]]
name = "probe_ctree_counts"
path = "examples/probe_ctree_counts.rs"
[[example]]
name = "probe_names"
path = "examples/probe_names.rs"
[[example]]
name = "taint"
path = "examples/taint.rs"
doc-scrape-examples = true
[[example]]
name = "type_diff"
path = "examples/type_diff.rs"
[[example]]
name = "types"
path = "examples/types.rs"
[[test]]
name = "builder"
path = "tests/builder.rs"
[[test]]
name = "ctor"
path = "tests/ctor.rs"
[[test]]
name = "ctree_nodes"
path = "tests/ctree_nodes.rs"
[[test]]
name = "cxx_error"
path = "tests/cxx_error.rs"
[[test]]
name = "doc_alias"
path = "tests/doc_alias.rs"
[[test]]
name = "evex"
path = "tests/evex.rs"
[[test]]
name = "faults"
path = "tests/faults.rs"
[[test]]
name = "kernel"
path = "tests/kernel.rs"
test = false
harness = false
[[test]]
name = "kernel_guard"
path = "tests/kernel_guard.rs"
[[test]]
name = "kernel_wiring"
path = "tests/kernel_wiring.rs"
[[test]]
name = "reopen_is_pristine"
path = "tests/reopen_is_pristine.rs"
[[test]]
name = "send_move"
path = "tests/send_move.rs"
[[test]]
name = "side_effects"
path = "tests/side_effects.rs"
[[test]]
name = "signals"
path = "tests/signals.rs"
[dependencies.bon]
version = "3.9.3"
[dependencies.cxx]
version = "1.0.197"
[dependencies.dotenvy]
version = "0.15.7"
[dependencies.idakit-sys]
version = "0.2.0"
[dependencies.num_enum]
version = "0.7.6"
[dependencies.postcard]
version = "1.1.3"
features = ["alloc"]
optional = true
default-features = false
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.siphasher]
version = "1.0.3"
[dependencies.snafu]
version = "0.9.1"
[dependencies.strum]
version = "0.28.0"
features = ["derive"]
[dependencies.toml]
version = "1.1.2"
[dependencies.tracing]
version = "0.1.44"
[dev-dependencies.assert2]
version = "0.4.0"
[dev-dependencies.inventory]
version = "0.3.24"
[dev-dependencies.libc]
version = "0.2.186"
[dev-dependencies.libtest-mimic]
version = "0.8.2"
[dev-dependencies.proptest]
version = "1.11.0"
[dev-dependencies.rstest]
version = "0.26.1"
[dev-dependencies.serde_json]
version = "1.0.150"
[dev-dependencies.syn]
version = "2.0.119"
features = [
"full",
"visit",
]
[lints.clippy]
borrow_as_ptr = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_ptr_alignment = "allow"
cast_sign_loss = "allow"
doc_markdown = "allow"
missing_const_for_fn = "allow"
option_if_let_else = "allow"
ptr_as_ptr = "allow"
redundant_pub_crate = "allow"
ref_as_ptr = "allow"
struct_excessive_bools = "allow"
unnecessary_debug_formatting = "allow"
wildcard_imports = "allow"
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
trivial_numeric_casts = "warn"
unsafe_op_in_unsafe_fn = "deny"
unused_lifetimes = "warn"
unused_qualifications = "warn"
[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(coverage_nightly)"]
[lints.rustdoc]
bare_urls = "deny"
broken_intra_doc_links = "deny"
invalid_codeblock_attributes = "deny"
invalid_html_tags = "deny"
invalid_rust_codeblocks = "deny"
missing_crate_level_docs = "deny"
private_intra_doc_links = "deny"
redundant_explicit_links = "deny"
unescaped_backticks = "deny"