py2many: Как превратить Python в Rust, C++ и другие языки за пару команд

04 авг 2025
1,313
87
13
2 недели

Знакома ситуация, когда прототип на Python работает отлично, но для продакшена нужна производительность Rust или C++? Или нужно переиспользовать бизнес-логику на Python в мобильном приложении на Kotlin? Именно эти проблемы решает py2many — универсальный транслятор Python-кода в 8+ языков программирования.

Что это за инструмент и кому он пригодится

Py2many — это не просто очередной конвертер кода, а полноценный транслятор с поддержкой:

  • Rust (основной фокус разработчиков)
  • C++ (production-ready)
  • Go, Kotlin, Julia, Nim, Dart и D (бета-версии)

Build Status

Кому будет полезен:

  • Разработчикам, которые хотят ускорить Python-код без переписывания на Rust/C++
  • Командам, которым нужно использовать одну логику на разных платформах
  • Тем, кто изучает новые языки через сравнение с Python

Пять причин попробовать py2many

  1. Производительность — после трансляции в Rust тот же алгоритм может работать в 10-100 раз быстрее
  2. Безопасность — пишите код на Python, а получайте безопасный Rust/C++
  3. Кроссплатформенность — один код для веба, мобильных и embedded-устройств
  4. Обучение — отличный способ изучать новые языки через сравнение с Python
  5. Простота — установка через pip и работа из командной строки

Как это работает на практике

Пример трансляции Python → Rust

Исходный Python-код:

Реклама
def fib(i: int) -> int:
    if i == 0 or i == 1:
        return 1
    return fib(i - 1) + fib(i - 2)

После трансляции в Rust:

fn fib(i: i32) -> i32 {
    if i == 0 || i == 1 {
        return 1;
    }
    return (fib((i - 1)) + fib((i - 2)));
}

Быстрый старт

Установка (требуется Python 3.8+):

pip3 install py2many

Примеры использования:

# Python в Rust
py2many --rust=1 ваш_скрипт.py

# Python в C++
py2many --cpp=1 ваш_скрипт.py

Где это можно применить

  1. Высоконагруженные сервисы — трансляция критичных к производительности участков
  2. Мобильная разработка — использование Python-логики в Android (Kotlin) и iOS (через Rust)
  3. Встраиваемые системы — работа с ресурсоограниченными устройствами
  4. WebAssembly — компиляция Python-кода в WASM через Rust

Ограничения и особенности

  • Не все фичи Python поддерживаются (например, динамические типы)
  • Лучше всего работает с явно типизированным кодом
  • Для сложных проектов потребуется ручная доработка

Вывод: стоит ли пробовать?

Py2many — это: ✅ Отличный способ «прокачать» производительность Python-кода ✅ Удобный инструмент для кроссплатформенной разработки ✅ Интересный образовательный ресурс

Попробуйте на небольшом проекте — возможно, это именно тот инструмент, который сэкономит вам недели ручного переписывания кода!

Репозиторий проекта | Примеры трансляции

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.