#epics #async #api-bindings

epics-ca

Client library for EPICS Channel Access protocol

3 releases

0.1.2 Aug 24, 2023
0.1.1 May 17, 2023
0.1.0 Dec 16, 2022

#304 in Science

MIT/Apache

100KB
2.5K SLoC

epics-ca

Rust bindings for EPICS Channel Access protocol.

Requrements

This crate requires built epics-base or at least ca library.

During build you need to provide a path to a static library (libca.a or ca.lib). This could be done either by:

  • setting EPICS_BASE env variable that contains path to epics-base root, or
  • adding to RUSTFLAGS a path where static library file is stored (e.g. -L /opt/epics-base/lib/linux-x86_64).

At run time the crate also needs a dynamic library (libca.so or ca.dll). You need to provide path to its location (e.g. via LD_LIBRARY_PATH) or put it where it could be found automatically (e.g. along with executable).

Testing

To run tests you need to have dummy IOC running (located in ioc dir):

  • Set appropriate EPICS_BASE path in configure/RELEASE.
  • Build with make.
  • Go to iocBoot/iocTest/ and run script st.cmd and don't stop it.

In separate shell run cargo test.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2.2–3.5MB
~59K SLoC