## pyproc:从 Go 调用 Python – 无缝衔接
pyproc 允许直接从 Go 代码调用 Python 函数,*无需* CGO、微服务或网络开销的复杂性。它利用 Unix 域套接字进行快速、隔离的进程间通信,绕过 Python 的全局解释器锁 (GIL),实现真正的并行性。
**解决的问题:** Go 在性能方面表现出色,但通常需要 Python 来处理机器学习模型(PyTorch、TensorFlow)、数据科学(pandas、numpy)、遗留代码或仅 Python 的库。传统的解决方案,如 CGO,复杂且不稳定,而微服务会引入延迟和开销。
**主要特性:** 零网络延迟、进程隔离(崩溃不影响 Go)、真正的并行性、简单的部署(Go 二进制文件 + Python 脚本)、连接池以及类似函数的 API。
**目标用例:** 集成 Python 机器学习模型、使用 Python 库处理数据、处理适度的 RPS(1-5k)和小型负载,以及从 Python 微服务逐步迁移。非常适合 Kubernetes 同 pod 部署。
**限制:** 不适用于跨主机通信,Windows 支持有限,且未设计用于大规模机器学习服务或实时流。
**要求:** Linux/macOS,Go 1.22+,Python 3.9+。
**性能:** 在 8 个 worker 和 45μs p50 延迟下,可实现高达 200,000 req/s 的性能。包含内置的健康检查和监控。