/hecdss-rs

Safe Rust API for HEC-DSS7 C library.

Primary LanguageCApache License 2.0Apache-2.0

About hecdss

This library contains bindings to HEC-DSS in Rust. The included sys crate hecdss-sys automatically generates low-level C interface to Rust (FFI). The FFI is then used to create safe Rust APIs to HEC-DSS. This library is a work in progress. There is also a Python binding pydsstools for HEC-DSS.

Usage

Install the rustup toolchain, LLVM.

Command to build the library from source:

cargo build

Command to build and run the included tests:

cargo test -- --nocapture

The build process involves linkage with HEC-DSS C and Fortran libraries. The included cmd_intel_environ.bat can be used in Windows 10 that has Microsoft Visual Studio and Intel OneApi.

The threadsafe feature is on by default. This feature prevents running HEC-DSS7 C functions in parallel using mutex (i.e., mutual exclusion) synchronization lock. For single threaded application this, however, adds CPU overhead. The threadsafe feature can be turn off using following commands:

cargo build --no-default-features
cargo test --no-default-features -- --nocapture

Contributing

All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome. Feel free to ask questions on my email.

License

This program is a free software: you can modify and/or redistribute it under LICENSE license.