DWRM全称Dreamingwish Remote Method

DWRM旨在跨进程调用C函数。其使用泛型传输层,可以被定制为使用socket/XPC/shm等传输方式;通过内存重布局及偏移访问,传输数据只需序列化,无需反序列化;配合辅助脚本自动封装,增加远程函数时几乎无需编写额外代码。

源码托管在Github

特性:

  1. 一般情况下,通过辅助脚本自动封装,增加远程函数时几乎无需编写额外代码。
  2. 使用泛型传输层,可以支持socket/XPC/shm等传输方式。
  3. 通过内存重布局及偏移访问,传输数据只需序列化,无需反序列化。
  4. 内建Debug函数。

当前不支持:

  1. 自动序列化Objective-C对象。
  2. 变长参数函数。
  3. 返回数据长度无法预知(既不传入buffer长度,也无法从输出参数中获取或计算得返回buffer长度)的函数。

TODO:

  1. 稳固健壮的预定义socket传输层(当前只包含一个简化的socket传输层)。
  2. 使用汇编代码推栈来调用函数(当前使用的是预定义方式配合自动封装脚本来生成客户端与服务端的代码)。

附注:

所有类、结构体等均使用BI开头而非DW开头,其原因是,起初DWRM是我为Baidu-Inputmethod项目写的一个模块。

评论模块尚未加载