unstrip 1.2.0

Recover symbols, types, and method signatures from stripped Go binaries. Ghidra/IDA/Binary Ninja exporters included.
Documentation
# Contributing to unstrip

Thanks for the interest.

## Before you start

For anything beyond a typo or a one-line fix, open an issue first. It saves time on both sides if we agree on the approach before code is written.

## Reporting bugs

Open a GitHub issue with:

1. `unstrip --version`.
2. Host platform.
3. `unstrip <bin> --info` output for the target binary (or as much of it as you can share).
4. The exact command you ran and the output you got.
5. What you expected instead.

A minimal Go reproducer (`main.go` plus the build command) is the best attachment when the original binary cannot be shared.

## Reporting vulnerabilities

Do not open a public issue. See [SECURITY.md](./SECURITY.md).

## Development setup

```
git clone https://github.com/riven-labs/unstrip
cd unstrip
cargo build
cargo test
```

Integration tests need fixtures built from a local Go toolchain:

```
cd testdata && ./build-fixtures.sh && cd ..
cargo test --features integration
```

Requirements: Rust 1.85 or newer, Go 1.18 or newer on `$PATH` for the integration fixtures.

## Before you open a PR

Run the same checks CI runs:

```
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo build --all-targets
cargo test --all
```

If any fails locally, it will fail in CI.

## Pull request conventions

- One logical change per PR.
- Title in imperative mood with a `fix:` / `feat:` / `docs:` / `chore:` / `refactor:` / `test:` / `perf:` prefix.
- PR body explains why the change is needed and why this approach.
- New behavior has tests. Bug fixes have a regression test.
- Update [CHANGELOG.md]./CHANGELOG.md under `## Unreleased`.
- Match the existing voice in any text changes: short, concrete, builder-to-builder.

## License

By contributing, you agree your contribution is licensed under the [MIT License](./LICENSE).