Skip to content

main proio repository that is home to language-independent files

License

Notifications You must be signed in to change notification settings

proio-org/proio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

proio

Github: https://github.com/proio-org/proio

Introduction

Proio is an event-oriented streaming data format based on Google's protocol buffers (protobuf). Proio aims to add event structure and additional compression to protobuf in a way that supports event data model serialization in medium- and high-energy physics. Additionally, proio

  • supports self-descriptive data,
  • is stream compatible,
  • is language agnostic,
  • and brings along many advantages of protobuf, including forward/backward compatibility.

For detailed information on the proio format and introductory information on the software implementations, please see DOI 10.1016/j.cpc.2019.03.018. This work was inspired and influenced by LCIO, ProMC (Sergei Chekanov), and EicMC (Alexander Kiselev)

Language implementations

There are several language-native library implementations of proio which support manipulating events and reading/writing streams. Each of these implementations adhere to the proio format, and therefore produce and consume compatible streams.

  • Go: Implemented
  • Python: Implemented
  • C++: Implemented
  • Java: Currently read only

Command-line tools

Most proio tools are written in go. This is to provide highly portable but also highly performant tools. The tool sources are located here, and the tools are go get-able with the following command (if you have the go compiler):

go get github.com/proio-org/go-proio/tools/...

If you do not have the go compiler, you can find pre-compiled binaries in the go-proio releases.

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •