Skip to content

ZhenshengLee/iceoryx-rust

Repository files navigation

iceoryx-rs-c

Rust wrapper for the iceoryx IPC middleware based on rust bindgen.

patch with iceoryx c binding

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.

build

cargo build
# or with release
cargo build --release

run the examples

icedelivery

# 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

todo

todos Status
create safe api
block and allow

related work

See iceoryx-rs created by iceoryx team with a higher abstraction of rust api.

Which is undone for now.

About

Rust wrapper for Eclipse iceoryx™ based on bindgen.

Resources

License

Stars

Watchers

Forks

Releases

No releases published