Go-HEP is a set of libraries and applications allowing High Energy Physicists (HEP
) to write efficient analysis code in the Go programming language.
Go brings the fast edit-compile-run cycle that interpreted language users know and the runtime efficiency that compiled languages users expect.
Go-HEP provides the needed HEP
oriented packages on top of this concurrency-enabled language.
The Go-HEP project currently provides limited read access to ROOT files, the binary format that all LHC experiments use to store data. But Go-HEP is missing a pure-Go library to access to data repositories, something that is tackled by XRootD, a LGPL-licensed C++ library.
The proposed project aims at implementing a pure-Go BSD-3 client library for XRootD. As the C++ XRootD library is licensed under LGPL, a fair amount of the proposed project work will involve reading the XRootD protocol specifications (PDF) without looking at the original C++ code.
We propose the following steps:
ping
, protocol
,auth
, bind
, unbind
,close
, open
, read
,Working command line client for XRootD (built on top of a clean API) that can read files served by a XRootD server.