# Welcome to coolprop-rs
**EXPERIMENTAL** CoolProp Wrapper for Rust
The wrapper uses rust-bindgen to create the bindings to the C++ shared library of CoolProp and adds some wrapper functions. The wrapper should work on all platforms that CoolProp and Rust work on.
## Prerequisites
The CoolProp shared library (_libCoolProp.so_) and header file (_CoolPropLib.h_) must be installed on the computer in the systems folder. On Linux e. g. _/usr/lib64_ and _/usr/include_. Instructions to compile and install CoolProp for your system can be found on the project page of [CoolProp](https://github.com/CoolProp/CoolProp).
## Installation
The wrapper gets published on [crates.io](https://crates.io/crates/coolprop-rs) as `coolplot-rs` and you can add the library in your project.
```toml
[dependencies]
coolprop-rs = "0.2"
```
## Examples
At the moment the wrapper provides access to either the full C++ bindings directly or a small subset of methods which utilizes Rust types, error handling and unit testing.
The C++ bindings can be used with:
Rust:
```Rust
use coolprop-rs::bindings::*;
```
The subset of Rust methods are at the moment **PropsSI()** and **HAPropsSI()**:
Rust:
```Rust
use coolprop-rs;
println!("{:?}", coolprop-rs::PropsSI("H", "T", 300.0, "Q", 1.0, "R134a").unwrap());
println!("{:?}", coolprop-rs::HAPropsSI("H", "T", 300.0, "P", 100000.0, "R", 0.0).unwrap());
```
Output:
```bash
413265.6843372975
27013.112479771713
```
## License
This Rust package is released under the terms of the MIT license.