Go bindings for YARA, staying as
close as sensible to the library's C-API while taking inspiration from
the yara-python
implementation.
On y Unix system, libyara version 4, corresponding header files, and pkg-config must be installed. Adding go-yara v4 to a project with Go Modules enabled, simply add the proper dependency…
import "github.com/hillu/go-yara/v4"
…and rebuild your package.
To install go-yara v4 to GOPATH, do:
go get github.com/hillu/go-yara/v4
go install github.com/hillu/go-yara/v4
If libyara has been installed to a custom location, the
PKG_CONFIG_PATH
environment variable can be used to point
pkg-config at the right yara.pc
file.
For anything more complicated, refer to the "Build Tags" section below. Instructions for cross-building go-yara for different operating systems or architectures can be found in README.cross-building.md.
The build tag yara_static
can be used to tell the Go toolchain to
run pkg-config with the --static
switch. This is not enough for a
static build; the appropriate linker flags (e.g. -extldflags "-static"
) still need to be passed to the go tool.
The build tag yara_no_pkg_config
can be used to tell the Go toolchain not
to use pkg-config's output. In this case, any compiler or linker
flags have to be set via the CGO_CFLAGS
and CGO_LDFLAGS
environment variables, e.g.:
export CGO_CFLAGS="-I${YARA_SRC}/libyara/include"
export CGO_LDFLAGS="-L${YARA_SRC}/libyara/.libs -lyara"
go install -tags yara_no_pkg_config github.com/hillu/go-yara
This version of go-yara can only be used with YARA 4.0 or later.
Versions of go-yara compatible with YARA 3.11 are available via the
v3.x
branch or tagged v3.*
releases.
Versions of go-yara compatible with earlier 3.x versions of YARA are
available via the v1.x
branch or tagged v1.*
releases.
BSD 2-clause, see LICENSE file in the source distribution.
Hilko Bengen <bengen@hilluzination.de>