go-inspector is a utility to extract dependencies and symbols from Go binaries. It is designed to work as a ScanCode Toolkit plugin and integrated in ScanCode.io
To install and use:
- Run
pip install go-inspector
- Use with
scancode --json-pp - --go-symbol --verbose <PATH to a tree or file with Go binaries>
The JSON output will contain various dependencies and symbols found in Go binaries if any.
A Go compiler is required to build go-inspector. Install Go from https://go.dev/doc/install or from a package manager.
- License: Apache-2.0 AND MIT AND BSD-3-Clause WITH LicenRef-scancode-google-patent-license-golang
- Copyright (c) nexB Inc., AboutCode, Mandiant, The Go Authors, Elliot Chance and others.
- Homepage: https://github.com/aboutcode-org/go-inspector
See the libsrc/ directory for detailed license and credits for bundled third-party packages.
- Install requirements and dependencies using
make dev
- Then
source venv/bin/activate
Testing:
- To run tests:
pytest -vvs
- To regen test fixtures:
SCANCODE_REGEN_TEST_FIXTURES=yes pytest -vvs
- To update the bundled GoReSym, see src/bin/update.sh
Building:
- Ensure
make dev
has been run, then runmake build
These are compiled (and committed) from code in tests/data/basic :
- Run
go tool dist list
to get all possible pairs of OSes and arches to compile the binary. - Then build a OS/arch pair like this to get compiled binaries:
GOOS=<OS> GOARCH=<arch> go build -o ./tests/data/basic/app_<OS>_exe ./tests/data/main.go
- Make a copy and run strip of the Linux executable as "app_lin_exe_stripped"
This project is funded, supported and sponsored by:
- Generous support and contributions from users like you!
- the European Commission NGI programme
- the NLnet Foundation
- the Swiss State Secretariat for Education, Research and Innovation (SERI)
- Google, including the Google Summer of Code and the Google Seasons of Doc programmes
- Mercedes-Benz Group
- Microsoft and Microsoft Azure
- AboutCode ASBL
- nexB Inc.
This project was funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.
https://nlnet.nl/project/Back2source/
This project was funded through the NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101092990.
https://nlnet.nl/project/Back2source-next/
This project was funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.