本章为《Rust FFI 开发系列教程》的序言。
Rust FFI
FFI (Foreign Function Interface) 是 Rust 中非常重要的一个部分。Rust 本身的一个定位——系统开发的能力——赋予它(FFI)在Rust整个生态中一个特殊的地位。
FFI 主要在两个大的领域起作用:
- 系统开发;
- 跨语言开发。
系统开发
我们此处定义的系统开发,有较丰富的意义,包括但不限于:
- 对 OS 系统调用的封装;
- 对系统底层 C 库的封装;
- 广泛平台的嵌入式/IoT 开发;
- OS 开发;
- 充分利用现代硬件平台的性能优势;
跨语言开发
跨语言开发的意思是,可以使用 Rust 语言为其它(几乎任何)语言写调用库。主要分为:
- 利用 C ABI 进行跨语言调用;
- 利用 Wasm 进行跨语言调用;
本系列教程的大纲
- FFI 的基本概念和基本原理
- Rust 标准库中对 FFI 支持的基础设施准备
- 使用 libc crate 进行 FFI 增强支持
- 使用 nix crate 进行类 unix 系统开发
- 使用 rust-bindgen 进行自动 C 库封装,生成 *-sys crate
- Rust 对不同硬件平台的支持
- Rust 到各平台的交叉编译
- 使用 Rust FFI 进行嵌入式平台开发
- 使用 Rust FFI 进行 GPU 编程
- 使用 Rust FFI 进行高性能计算编程
- 使用 Rust FFI 为 C/C++ 写调用库(跨平台开发)
- 使用 cbindgen 为 C/C++ 自动生成调用库头文件
- 使用 Rust FFI 为 Python 写调用库
- 使用 Rust FFI 为 Ruby 写调用库
- 使用 Rust FFI 为 Nodejs 写调用库
- 使用 Rust FFI 为 Php 写调用库
- 使用 Rust FFI 为 Go 写调用库
- 使用 Rust FFI 为 Java 写调用库
- 使用 Rust + Wasm 为 C/C++ 写调用库
- 使用 Rust + Wasm 为 Python 写调用库
- 使用 Rust + Wasm 为 Ruby 写调用库
- 使用 Rust + Wasm 为 Nodejs 写调用库
- 使用 Rust + Wasm 为 Php 写调用库
- 使用 Rust + Wasm 为 Go 写调用库
- 使用 Rust + Wasm 为 Java 写调用库
- 一些比较知名的 FFI 封装 crate
- 后记-结语
大纲是预定的,不排除在未来写作过程中,随时调整。
Rust FFI 的意义
如大纲所见,Rust 从设计之初就定位一门系统级编程语言,Rust FFI 在实现这一目标的过程中,起着特殊而重要的作用。利用 FFI,Rust 终能迅速切入巨大的存量遗产,同时也能牢牢把握新兴增量领域。或许再过几年时间,大家就能看出来 Rust 吉祥物的意义——一只螃蟹——橫着走。
1
共 8 条评论, 1 页
评论区
写评论优秀
超赞!(ง •_•)ง
谢谢。到时会在本站和Rust语言中文社区公众号上同步发布,大概两周更新一到两篇(注:不是章 :D)
看着目录就很期待了!!!
期待ing... .
在哪里更新,有没有微信工号或者gitbook
后续哪里更新?
资瓷!
在哪更新呢?