Welcome to Go-HEP

Go-HEP is a set of libraries and applications allowing physicists from High Energy Physics (HEP) to write efficient analysis code in the Go programming language.

GitHub release go.dev reference CI Build Status appveyor codecov License DOI JOSS Paper Binder

Go brings the fast edit-compile-run cycle that interpreted language users enjoy and the runtime efficiency that compiled languages users expect. Go-HEP provides the needed HEP oriented packages on top of this concurrency-enabled language.

Go-HEP currently sports the following packages:


Writing analyses in HEP involves many steps and one needs a few tools to successfully carry out such an endeavour. But – at minima – one needs to be able to read and write ROOT files to be able to interoperate with the rest of the HEP community or to insert one’s work into an already existing analysis pipeline.

Go-HEP provides this necessary interoperability layer, in the Go programming language. This allows physicists to leverage the great concurrency primitives of Go, together with the surrounding tooling and software engineering ecosystem of Go, to implement physics analyses.


Go-HEP packages are installable via the go get command:

$ go get go-hep.org/x/hep/fads

Just select the package you are interested in and go get will take care of fetching, building and installing it, as well as its dependencies, recursively.

go-hep is available on all Go supported platforms, mainly:

  • linux-{amd64,386,arm,arm64,mips,mips32,...}
  • darwin-{amd64,386,...}
  • windows-{amd64,386,...}
  • freebsd-{amd64,386,...}

Binaries for go-hep are also available here: go-hep.org/dist


All go-hep code is released under a BSD-3 license.

Authors and Contributors

go-hep was primarily written by Sebastien Binet (@sbinet). The complete CONTRIBUTORS and AUTHORS list can be consulted on the dedicated license repository.

Support or Contact

Having trouble with Go-HEP?

Check out the documentation:

There’s also the forum:

to discuss about Go-HEP or ask for help.


The go-hep logo was made by Tom Ingebretsen from the Noun Project.