Go-HEP/xrootd - Create a pure-Go client for XRootD

Description

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.

Tasks

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:

Expected results

Working command line client for XRootD (built on top of a clean API) that can read files served by a XRootD server.

Requirements

Mentors

Corresponding Project

Participating Organizations