···1011[dependencies]
12oxyroot = "0.1.25"
13-pyo3 = { version = "0.26.0", features = ["abi3-py38"] }
14parking_lot = "0.12.3"
15-numpy = "0.26.0"
16parquet = { version = "53.0.0", features = ["arrow"] }
17arrow = "53.0.0"
00
···1011[dependencies]
12oxyroot = "0.1.25"
13+pyo3 = { version = "0.25.0", features = ["abi3-py38"] }
14parking_lot = "0.12.3"
15+numpy = "0.25.0"
16parquet = { version = "53.0.0", features = ["arrow"] }
17arrow = "53.0.0"
18+polars = "0.50.0"
19+pyo3-polars = "0.23.1"
+8-6
README.md
···89A fast, Rust-powered Python reader for CERN ROOT files.
1011-This package provides a simple and Pythonic interface bindings to `oxyroot`, a rust package, to read data from `.root` files, inspired by libraries like `uproot`. It leverages the speed of Rust for high-performance data extraction and integrates with the scientific Python ecosystem by providing data as NumPy arrays.
1213## Features
1415-- **High-Performance**: Core logic is written in Rust for maximum speed.
16-- **Parquet Conversion**: Convert TTrees directly to Apache Parquet files with a single command.
17-- **NumPy Integration**: Get branch data directly as NumPy arrays.
18-- **Simple, Pythonic API**: Easy to learn and use, and similar to `uproot`
1920## Quick Start
21···6061## Performance
6263-`oxyroot` is designed to be fast. Here is a simple benchmark comparing the time taken to read all branches of a TTree with `uproot` and `oxyroot`.
6465```python
66import oxyroot
···87end_time = time.time()
88print(f"Oxyroot took: {end_time - start_time:.3f}s")
89```
009091## License
92
···89A fast, Rust-powered Python reader for CERN ROOT files.
1011+This python package provides simple bindings to [`oxyroot`, a rust package](https://github.com/m-dupont/oxyroot), to read data from `.root` files, inspired by libraries like `uproot`. It leverages the speed of Rust and integrates with the scientific Python ecosystem by providing data as NumPy arrays or polars dataframes.
1213## Features
1415+- Simple API similar to `uproot`
16+- Core logic is written in Rust.
17+- Get branch data directly as NumPy arrays or Polars dataframe.
18+- Parquet Conversion: Convert TTrees directly to Apache Parquet files with a single command.
1920## Quick Start
21···6061## Performance
6263+`oxyroot` is intended to be fast. Here is a simple benchmark comparing the time taken to read all branches of a TTree with `uproot` and `oxyroot`.
6465```python
66import oxyroot
···87end_time = time.time()
88print(f"Oxyroot took: {end_time - start_time:.3f}s")
89```
90+91+On a small file (~20 MB) with multiple data formats, oxyroot took half the time of uproot, and also read in the branch with strings!
9293## License
94