#python #pyo3 #threading #development-tools-bindings

RustPyNet

RustPyNet是一个库,旨在帮助在多线程中使用Python,适用于小型中型工作负载,如以协调一致的方式从多个位置调用快速执行回调和执行小型中型操作。RustPyNet建立在PyO3之上,并支持所有PyO3 Python操作,包括返回函数结果的基本响应。

1个不稳定版本

0.1.3 2023年9月13日
0.1.2 2023年9月13日
0.1.1 2023年9月13日
0.1.0 2023年9月13日

#747 in 过程宏

MIT 许可证

21KB
276 代码行

RustPyNet:Rust中的Python操作处理池

RustPyNet旨在弥合Python和Rust之间的差距,提供了一个与PyO3库无缝集成的Python操作处理池。

目标

RustPyNet的主要目标是解决Python全局解释器锁(GIL)带来的限制。通过促进多线程操作,RustPyNet允许在单个解释器绑定的情况下并行执行Python函数。这使得它特别适用于Rust处理大部分工作负载,但需要以Python执行较小任务的场景。

主要功能

  • 绕过GIL机制:允许并行执行受GIL限制的Python代码段。
  • 线程安全Python对象传输:促进线程间Python对象的传输。
  • 过程宏:通过过程宏简化Python与Rust代码的集成,自动索引到Python池。
  • 适用于中大型任务:针对具有较轻Python工作负载但Rust侧负载较重的任务进行优化。

更多信息请访问:https://github.com/letalboy/RustPyNet

依赖项

~6MB
~113K SLoC