OpenProteo
One stack. Three vendors. Open Rust.
OpenProteo is the open-source Rust stack for proteomics raw-file access. Read Thermo, Bruker, and Waters acquisitions through a single API, convert them to PSI-MS mzML 1.1.0 with the canonical writer, and stream them straight into Arrow for downstream analytics. No vendor SDKs, no Windows-only DLLs, no binary blobs in your release pipeline.
The stack
| Layer | Crate | What it does |
|---|---|---|
| Umbrella | openproteo-io |
Feature-gated re-exports + detect_format + convert_to_mzml |
| CLI | openproteo-io-cli |
vendor2mzml one-shot binary |
| Python | openproteo |
Metapackage exposing the converter from Python |
| Shared core | openproteo-core | SpectrumRecord, Arrow batch, mzML writer |
Thermo .raw |
opentfraw | Finnigan reader |
Bruker .d/ |
opentimstdf | timsTOF TDF reader |
Waters .raw/ |
openwraw | MassLynx bundle reader |
Current pinned stack lives in STACK.md.
Install
CLI
Pre-built vendor2mzml binaries land on the GitHub
Releases page.
Or build from source:
Rust library
[]
= { = "1.0", = ["all"] }
Vendor features are independent (thermo, bruker, waters) so you
only compile what you ship.
Python
Use it
Convert a file
vendor2mzml sniffs the format from the path (or directory layout for
Bruker .d/ and Waters .raw/ bundles), routes through the matching
vendor crate, and writes indexed PSI-MS mzML 1.1.0.
From Rust
use ;
let fmt = detect_format?;
println!;
convert_to_mzml?;
From Python
Documentation
Full reference, conversion semantics, and the per-vendor parser notes live at sigilweaver.app/openproteo/docs.
The source for that site is in docs/ (Docusaurus). See
docs/README.md for the build commands.
Contributing
Bug reports and PRs are welcome on any of the five repos. See SECURITY.md for the security policy.
This umbrella ships releases via scripts/release-stack.sh
which gates on the downstream ProLance
truth-test before tagging.
License
Apache-2.0. Each vendor crate carries its own header and upstream attribution; this repo only orchestrates them.