Rust wrapper for the iceoryx IPC middleware based on rust bindgen.
Because of this known issue with iceoryx_binding_c
You must build with this version of iceoryx, which changes the binding_c
to full cpp symbol.
By default, iceoryx will be installed in /usr/local
, and you can install this version in /opt/iceoryx/iceoryx
with following command.
git clone https://github.com/ZhenshengLee/iceoryx.git
cd ./iceoryx
git checkout rust-c-binding
cmake -Bbuild -Hiceoryx_meta -DBUILD_ALL=1 -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/iceoryx/iceoryx/
cmake --build build -j10
sudo cmake --build build --target install
# -DBUILD_SHARED_LIBS=ON is needed, perhaps due to bugs with bindgen
in build.rs
, rust will try to find iceoryx libs in /opt/iceoryx/iceoryx/lib
, add any path in build.rs
if needed.
cargo build
# or with release
cargo build --release
# t1
iox-roudi
# t2
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/iceoryx/iceoryx/lib
./target/debug/ice_rs_publisher
# t3
iox-c-subscriber
examples | Status |
---|---|
icedelivery | ✔️ |
callback | ❌ |
waitset | ❌ |
❔ | ❔ |
todos | Status |
---|---|
create safe api | ❌ |
block and allow | ❌ |
❔ | ❔ |
See iceoryx-rs created by iceoryx team with a higher abstraction of rust api.
Which is undone for now.