0
点赞
收藏
分享

微信扫一扫

java调用rust 共享库的一些方法简单说明

java 与rust 的调用,核心还是基于jni 进行处理,rust社区实现了不少方便的工具可以提供rust 到c 的处理(比如生成头文件)
以下是整理的一些资料,方便学习

几个不错的包

  • jni-rs 
    目前还在活跃更新中,同时github 的start 也比较多,同时不少开源软件在用,比如questdb
  • robusta 
    一个比较新的项目,使用上比较简单,但是目前还是有一些缺点,具体可以参考官方文档
  • panama以及周边项目 
    实际上panama并不是rust 周边的,但是可以加速jni 的开发,比如我们已经构建好rust 的共享库之后,基于此可以 
    方便java 代码使用
  • graalvm 的native 能力 
    graalvm 对于native 的处理也比较强大,而且是oracle 官方的,也是不错的选择

说明

参考资料中包含了一些链接,可以方便参考学习

参考资料

https://openjdk.org/projects/panama/https://github.com/openjdk/jextract

https://github.com/jni-rs/jni-rs

https://docs.rs/jni/latest/jni/

https://github.com/mozilla/cbindgen

https://github.com/MaulingMonkey/jni-bindgen

https://github.com/mozilla/uniffi-rs

https://questdb.io/blog/leveraging-rust-in-our-high-performance-java-database/

https://github.com/questdb/rust-maven-plugin

https://github.com/giovanniberti/robusta

https://github.com/java-native-access/jna

https://www.graalvm.org/latest/reference-manual/native-image/guides/build-native-shared-library/

https://www.baeldung.com/java-project-panama

https://docs.oracle.com/javase/8/docs/technotes/guides/jni/

https://www.baeldung.com/jni

https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/jniTOC.html

https://www.graalvm.org/latest/reference-manual/native-image/native-code-interoperability/

https://www.graalvm.org/latest/reference-manual/native-image/native-code-interoperability/C-API/

https://www.graalvm.org/latest/reference-manual/native-image/dynamic-features/JNI/

举报

相关推荐

0 条评论