Show HN: Transpilatron – AI工具将Python代码转换为C二进制文件
Transpilatron是一款AI工具,利用LLM将Python项目转换为C语言并编译成原生二进制,无需运行时或解释器。性能提升显著,支持多种Python库,提供静态和动态链接模式。
Transpilatron 是一款创新的 AI 工具,能够将 Python 项目直接转换为 C 语言并编译为原生二进制文件,无需依赖 Python 运行时或解释器。它利用大型语言模型(LLM)作为智能代理,自动分析 Python 代码并生成等效的 C 源码,随后使用 -O2 或 -O3 优化级别进行编译,最终输出高性能的静态或动态链接二进制文件。
在实际基准测试中,Transpilatron 展现了惊人的性能提升。例如,在筛选 1000 万以内的素数(埃拉托色尼筛法)时,Python 运行耗时 0.526 秒,而转换后的 C 二进制仅需 0.022 秒,加速比达 24 倍;在 1 万个元素的排序测试中,性能提升更是达到了 58 倍(Python 1.963 秒,C 0.033 秒)。这些测试在相同硬件环境下完成,输出结果一致,凸显了 C 二进制在计算密集型任务中的优势。
该工具的操作流程简单透明:用户只需提供 Python 入口文件,Transpilatron 会自动追踪所有导入模块,将整个项目转换为 C 代码,生成 Makefile 并编译。最终的可执行文件存放在 out/ 目录下。它支持多种 Python 标准库和第三方库的转换,例如:HTTP 请求通过 libcurl 或原生 BSD 套接字实现;JSON 处理使用 cJSON;多线程映射为 pthreads;文件 I/O 采用 POSIX 系统调用。此外,对于 Flask、FastAPI 和 Django 等 Web 框架,它能够借助 libmicrohttpd 生成对应的 C 后端。深度学习框架如 torch 和 TensorFlow 在 usual 模式下也得到支持,通过 libtorch 或 TFLite C API 实现。
Transpilatron 提供了两种工作模式:minimal 模式生成完全静态链接的二进制,不依赖任何外部库,适用于 initramfs、scratch 容器或嵌入式系统;usual 模式(默认)则允许动态链接,支持更广泛的库,更适合通用场景。需要注意的是,该工具目前仅支持 Linux 和 macOS,并且某些动态 Python 特性(如元类、重度猴子补丁)可能无法完美转换。
与现有工具相比,Transpilatron 采取了截然不同的策略:Nuitka 和 PyInstaller 将 Python 解释器打包在二进制中,导致体积庞大(30MB 以上)且依赖运行时;而 Transpilatron 彻底剥离了 CPython 运行时,输出仅为数百 KB 的静态二进制,非常适合 CLI 工具、微服务、无服务器架构和容器化部署。尽管它在兼容性上有所妥协,但为目标环境提供了极致的性能和最小的依赖。
Transpilatron 最初是为了编译 Noodlix 操作系统的 initramfs 启动脚本而开发的,现在已支持多种 Python 应用场景。该项目使用 Python 编写,托管在 GitHub 上,目前获得 1 颗星和 0 个分支,但已具备完整的功能文档和示例。对于追求极致启动速度和最小化镜像体积的开发者来说,Transpilatron 提供了一个全新且高效的解决方案。