rusty-chunkenc

Crates.iorusty-chunkenc
lib.rsrusty-chunkenc
version0.1.1
sourcesrc
created_at2024-09-13 14:14:47.037098
updated_at2024-09-30 11:34:27.499237
descriptionA Rust implementation of Prometheus' chunkenc library
homepage
repositoryhttps://github.com/sintef/rusty-chunkenc
max_upload_size
id1373714
size97,949
Antoine Pultier (fungiboletus)

documentation

https://docs.rs/rusty-chunkenc

README

rusty-chunkenc

Crates.io Documentation License

A Rust implementation of Prometheus' chunkenc library.

Features

  • Parse Prometheus XOR-encoded chunks (that are heavily inspired by Gorilla).
  • Serialise time series to Prometheus XOR-encoded chunks.
  • Read Prometheus' cold data directly from the disk.
  • Also comes with utilities to read and write varint, uvarint, varbit, varbit_ts, and varbit_xor numbers.

Why?

Prometheus uses XOR Chunks in its remote read API, and I wanted to understand how they work in detail. This crate enables SensApp to stream data to Prometheus. SensApp is written in Rust, and I wanted a chunkenc Rust implementation.

Also, writing a parser and a serialiser did sound fun.

License

Apache 2.0. Check the LICENSE file for more details.

Contributing

Feel free to report issues, contribute, or ask questions about this project.

Acknowledgements

This project is ported from Prometheus' chunkenc, that used go-tzs, that is based on the Gorilla paper. The parsing heavily relies on nom.

The project supports the Smart Building Hub research infrastructure project, which is funded by the Norwegian Research Council.

Commit count: 3

cargo fmt