Skip to main content

One post tagged with "rust"

View All Tags

Rust 调用 Go 代码

· 8 min read

事情的起因是这样的。最近有个 rust 的程序, 想在 rust 代码中读取 minio (一种开源且兼容 AWS s3 api 的对象存储)中的文件, 但是无奈 rust 的 api 很不完善 且似乎现在也没啥维护(有一年没有更新了)。而另外一边,minio 的 go api 开发十分活跃且是最优先支持的。 因此我就想能不能让 rust 调用 go 的 minio api 来实现 minio 中的对象读取。

虽然网络上面似乎也没太多相关的教程,但实际上也很容易做到。Rust 是一门面向底层开发的语言,其提供来很好的与 C 语言的互操作能力。 因此可以将 Go 代码中的相关函数导出为 C 语言的头文件声明,然后让 rust 像调用 C 一样间接地调用 Go 代码。