为python<->rust接口自动生成ffi。

rustyp的Python项目详细描述


rustypy是一个代码生成器,用于在 rust和python文件。此外,它还为 从python到rust的接口,自动类型转换 处理原语和其他基本类型(如向量、散列映射 和元组)以及一个用于处理这些对象的api(来自rust和 Python)。

功能

  • 在以rust为目标的python函数中生成绑定。
  • 在python中生成针对rust函数的绑定。
  • 提供rust和python之间的接口类型。

安装

要安装rustypy,只需使用pip:

pip install rustypy

rustypy需要python 3.5或更高版本,并且与rust stable一起工作。

以python为目标不信任包 cpython需要 初始化包。

用法

rustypy包含一个命令行接口来生成代码 如果有必要,你可以在你的构建链中盗用。

在rust中生成python绑定

您可以执行脚本编写:

$rustypy -h

$python -m rustypy -h

确保rustypy位于当前的python路径中。帮助命令 拥有所有成功生成绑定的信息。

它还包括动态生成绑定的函数。在python中 使用:

from rustypy.pywrapper import bind_py_pckg_funcs
# default prefix is "rust_bind_"
optional = ["my_bind_prefix_", "other_prefix_"]
bind_py_pckg_funcs(prefixes=optional)

此函数将为来自的包生成绑定 从调用(因此必须在 一个父文件夹中的文件)。

更多信息:Python in Rust

在python中生成rust绑定

由于python的特性,这是动态完成的,因此没有文件 生成绑定,并用它们自己的绑定进行适当包装 来自python的可调用函数。

from rustypy.rswrapper import bind_rs_crate_funcs

source_path = "/home/user/workspace/rs_test_lib"
compiled_lib = "/home/user/workspace/rs_test_lib/target/debug/libtest_lib.so"

# default prefix is "python_bind_"
optional = ["my_bind_prefix_", "other_prefix_"]
lib_binds = bind_rs_crate_funcs(source_path, compiled_lib, prefixes=optional)

lib_binds.my_bind_prefix__ffi_function("Hello from Python!")

C语言中没有“模块”的概念 接口),因此不能像在纯 生锈。阅读the book中的rust ffi。

更多信息:Rust in Python

生锈的板条箱documentation

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
为Java排序一个好的排序列表   java如何识别最后一行,然后单击Add按钮。。根据人们给出的建议,点击第二行想要点击最后一行任何潜在客户吗   收集器(.stream()。独特的()。collect(Collectors.toList());)在java中从eclipse成功运行并从命令提示符运行?   java致命异常:安卓的后台任务。数据库sqlite。SQLiteException:没有这样的表   java如何创建生成随机特殊字符的方法   java SQL只插入到特定列中   java Hibernate 5.2混合本机和JPA API   在Android应用程序中使用Java获取特定的XML标记文本   java之间的通道差异。addPeer()和channel。joinPeer()   java关闭对serialVersionUID的检查   java如何在不设置Id的情况下处理新的实体对象?   用于afterJob(JobExecution JobExecution)的java Spring批处理将参数从编写器传递到侦听器   java如何通过OSGi声明性服务声明hasa依赖关系?   java Android捕获在警报对话框中启动的OnFocusChange或Recents   Java刽子手游戏(主要关注输出)   java消息在OpenMQ中超时后丢失   Java方法在父级中的占位符用于子级   Java AWT列表框   来自http get请求的java“格式错误的JSON”