eclipse-iceoryx / iceoryx2

Eclipse iceoryx2™ - true zero-copy inter-process-communication in pure Rust
https://iceoryx.io
Apache License 2.0
395 stars 20 forks source link

Go language binding #225

Open TENX-S opened 2 weeks ago

TENX-S commented 2 weeks ago

Is there a plan to do this? It should be doable after #210 closed.

elfenpiff commented 2 weeks ago

@TENX-S

Is there a plan to do this?

There is now :smile:! In our roadmap, we listed all the languages that came to our mind, and Go just slipped it, partly because I think none of our core contributors ever got in touch with Go.

Would you be willing to help us out? Maybe you could push the Go language binding here or, as an alternative, review the corresponding pull requests — this would take much more time since we currently have other tasks and would need to learn the Go basics as well.

The tasks that would need to be done:

  1. Add the files required for the language binding under iceoryx2-lang/go (see here, our intermediate state: https://github.com/elBoberido/iceoryx2/tree/iox2-210-create-c-language-binding)
  2. Port all examples from examples/rust to Go and store them under examples/go
  3. Integrate examples into CI so that they are running there as well (this can be done completely on our side)

If you decide to help us out here, you will make the whole iceoryx family very happy!

TENX-S commented 2 weeks ago

Thank you for your response! I’m more than willing to help with the go binding. However, I noticed that the API in iceoryx2.h are not yet complete. Please let me know when you’re ready to release the C bindings.

In case you need some good examples of porting C library to Go by using cgo:

  1. https://github.com/mattn/go-sqlite3
  2. https://github.com/confluentinc/confluent-kafka-go/tree/master/kafka