Call Rust from Golang

今回はGo、Rustの相互呼び出しを試してみました。これまでCを介していましたが直接呼出しです。

参考)https://qiita.com/momotaro98/items/92e39e214b0e92f454a7

環境)

$ gcc -v

gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
$ go version
go version go1.20.4 linux/amd64
$ cargo version
cargo 1.69.0 (6e9a83356 2023-04-12)
$ rustc –version
rustc 1.69.0 (84c898d65 2023-04-16)

Call Rust

callrs.go

lib/hello/src/lib.rs

lib/hello.h

lib/hello/Cargo.toml

Makefile

実行画面

$ ./callrs
Rust func hello: “Go String”
Go main: “Rust String”

Call Go

src/main.rs

golib/main.go

golib/libhello.h (自動生成)

build.rs

Cargo.toml

Makefile

実行画面

$ ./callgo
Go Func hello: “Rust String”
Rust main: “Go String”

参考サイトに丁寧にかかれていますので、とても参考になりました。
実行場所と文字列の受け渡しをわかりやすくしてみました。
やはりRustは記述が複雑です。それゆえ事例を残しておくことで、あとで参照したいと思っています。

About

Categories: 未分類 タグ: ,