Bindings to librrd
to create and interact with round robin databases created with Tobias
Oetiker's rrdtool
.
RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. RRDtool can be easily integrated in shell scripts, perl, python, ruby, lua or tcl applications.
And now also from Rust.
This library provides high level APIs for the core RRD operations:
- Create - make a new round robin database (RRD)
- Update - add data to an RRD
- Fetch - get data from an RRD
- Graph - generate graphs from an RRD
- Info - get RRD metadata
There are other operations available in the upstream rrdtool
(e.g.
exporting to XML, tuning parameters, etc), but as they are generally more administrative in nature, this library doesn't
expose them (yet?).
Make sure rrdtool
(or at least librrd8
) is installed on your system.
Any reasonable package manager should have librrd
packages available, or check here for instructions on building from source.
Then add rrd
as a dependency to your project.
[dependencies]
rrd = "0.1.0"
To link to librrd-8.dll
you'll need a .lib
file, which is not
shipped with the pre-build binaries shipped here.
Follow these steps to create the .lib
file:
- Download
librrd-8.def
- From a VS dev shell:
lib /def:librrd-8.def /out:librrd-8.lib /machine:x64
- Set the
LIBRRD
environment variable to the full path oflibrrd-8.lib
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in rrd
by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
Run ./scripts/check-with-different-versions.sh
to run tests in several different linux systems with varying librrd versions.