visualbasic 0.2.1

Parse and inspect Visual Basic 6 compiled binaries
Documentation
[package]
name = "visualbasic"
version = "0.2.1"
edition = "2024"
authors = ["Johann Kempter <admin@binflip.rs>"]
rust-version = "1.88"
description = "Parse and inspect Visual Basic 6 compiled binaries"
license = "Apache-2.0"
repository = "https://github.com/BinFlip/visualbasic-rs"
readme = "README.md"
keywords = ["vb6", "pcode", "parser", "reverse-engineering", "binary-analysis"]
categories = ["parser-implementations"]

# visualbasic is used in malware-analysis pipelines where every input
# byte is adversarial. These lints prevent the parser from panicking on
# malformed input. The `cfg_attr(test, allow(...))` escape hatch in
# `src/lib.rs` lets tests still use `unwrap`/`expect`/`panic` for terseness.
# This crate also denies `unsafe_code`.
[lints.rust]
missing_docs = "deny"
unsafe_code = "deny"

[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
arithmetic_side_effects = "deny"
indexing_slicing = "deny"

[features]
default = []
# Emits structured `tracing` events at the per-iteration silent-skip sites
# (decode errors, malformed entries, unparseable controls, etc.). Useful
# for diagnosing why a parse silently dropped data without changing the
# fail-soft semantics. No effect when disabled — the helpers compile to
# no-ops.
tracing = ["dep:tracing"]

[dependencies]
goblin = "0.10.5"
tracing = { version = "0.1.44", optional = true, default-features = false, features = ["std"] }

[dev-dependencies]
proptest = "1.11.0"