Технологии · 1 min read · Oct 20, 2025
Транспиляция и запуск кода Python в программе Go с помощью открытого исходного кода Google 'Grumpy'

Google открывает исходный код Grumpy для транспиляции и запуска Python на G
Google в среду объявила о проекте с открытым исходным кодом под названием Grumpy, который является транспилятором и средой выполнения для преобразования кода Python в Go и предназначен для того, чтобы стать почти полным заменителем CPython 2.7. Это такое же креативное применение Go, как и трансформация случаев использования Python.
Фронтенд-сервер компании для YouTube и его API в основном написаны на Python и работают на CPython 2.7, в отличие от других реализаций (Jython, PyPy или IronPython). Проект начался из необходимости улучшить выполнение Python на YouTube, который работает на CPython 2.7, чтобы хорошо обрабатывать параллельные нагрузки.
“Grumpy не может использовать богатство существующих C-расширений Python, но это дало нам много гибкости для проектирования API и представления объектов, которые масштабируются для параллельных нагрузок,” сказал Дилан Троттер, старший инженер-программист в YouTube Engineering в Google в блоге. “Мы считаем, что Grumpy имеет потенциал масштабироваться более элегантно, чем CPython для многих реальных нагрузок.”
По словам Троттера, другие среды выполнения Python не смогли решить проблему параллелизма, не вводя неудовлетворительные компромиссы.
“Поэтому мы задали себе безумный вопрос: ‘Что если мы реализуем альтернативную среду выполнения, оптимизированную для реального времени?’” сказал Троттер. “Как только мы начали углубляться в эту тему, Go показался очевидным выбором платформы, поскольку его операционные характеристики хорошо соответствуют нашему случаю использования (например, легковесные потоки). Мы хотели первоклассную совместимость языков, и мощная система отражения типов времени выполнения Go сделала это простым. Python в Go казался очень естественным, и так родился Grumpy.
“Grumpy — это экспериментальная среда выполнения Python для Go. Она переводит код Python в программы Go, и эти ‘транспилированные’ программы работают без проблем в среде выполнения Go. Нам нужно было поддерживать большую существующую кодовую базу Python, поэтому было важно иметь высокую степень совместимости с CPython (все его особенности). Цель состоит в том, чтобы Grumpy стал заменой для любой чисто Python-проекта,” написал Троттер.
Тем не менее, Троттер предупреждает, что, хотя Grumpy только что был выпущен с открытым исходным кодом, он остается программным обеспечением альфа-уровня.
“Большинство языковых конструкций и многие основные встроенные типы работают так, как вы ожидаете [но] все еще есть пробелы, которые нужно заполнить — многие встроенные типы не имеют методов и атрибутов, встроенные функции отсутствуют, а стандартная библиотека практически пуста,” сказал он.
Get new posts in your inbox
No spam. Unsubscribe anytime.