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 提供了一個全新且高效的解決方案。