Depyler MCP
Транспайлер Python в Rust с MCP-сервером: агент оценивает объем миграции, переводит модули и сверяет поведение результата.
- 366 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Агент запускает транспайлер и компилятор на файлах проекта, результат пишется на диск и требует тестов.
Установка
- Работает в
Ручная установка
cargo install depylerПервая команда Installation из README. Нужен Rust 1.83 и новее.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Агент запускает транспайлер и компилятор на файлах проекта, результат пишется на диск и требует тестов.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Depyler переводит аннотированный Python в идиоматичный Rust и сохраняет поведение программы. Команда `depyler compile script.py` собирает автономный бинарный файл, а `depyler transpile example.py --verify` выдает Rust-код с проверкой. MCP-сервер открывает агенту четыре инструмента: `transpile_python`, `analyze_migration_complexity`, `verify_transpilation` и `pmat_quality_check`. Агент оценивает объем миграции проекта, переводит файлы, сверяет эквивалентность и проверяет качество сгенерированного Rust.
Для кого. Разработчикам, которые переносят Python-сервисы и скрипты на Rust ради скорости и безопасной работы с памятью и хотят отдать агенту рутину перевода.
Подходит, если
- Перед миграцией проекта нужна оценка: сколько строк Rust получится и какие компоненты труднее всего переносить.
- Скрипт с аннотациями типов превращают в автономный бинарный файл командой `depyler compile`.
- Агент переводит модуль и сразу сверяет результат с исходным Python через `verify_transpilation`.
- Сгенерированный Rust проверяют на сложность и технический долг инструментом `pmat_quality_check`.
Не подходит, если
- Код опирается на `eval`, `exec`, рефлексию, множественное наследование или monkey patching: README относит их к неподдерживаемым.
- Python-код без аннотаций типов, где типы пришлось бы угадывать.
- Ожидается полностью автоматический перенос крупного приложения: с первого прохода компилируется около 80% примеров проекта.
Пример запроса к агенту
Оцени, насколько сложно перевести этот Python-проект на Rust, затем переведи `main.py` и проверь эквивалентность результата.MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Переменные окружения
`RUST_LOG`- Уровень журнала сервера, в примере конфигурации `info`.
Ограничения
Транспайлер работает с Python, размеченным аннотациями типов. Динамические возможности (`eval`, `exec`, рефлексия, множественное наследование, monkey patching) не поддерживаются. По замерам самого проекта, с первого прохода компилируются 80% внутренних примеров (256 из 320), а на корпусе алгоритмов только 47,5%. Поэтому результат собирают и тестируют, а не принимают на веру. Для установки нужны Rust 1.83 и новее, для сверки тестами Python 3.8 и новее. Метрики качества в README опубликованы самим проектом.
Как отключить. Удалите блок `depyler` из конфигурации MCP-клиента и перезапустите клиент. Установленный через Cargo пакет удалите штатной командой Cargo.
Частые вопросы
Какие инструменты MCP есть?
Четыре. `transpile_python` переводит код, `analyze_migration_complexity` оценивает объем миграции, `verify_transpilation` проверяет эквивалентность, `pmat_quality_check` оценивает сложность и технический долг.
Как собрать бинарный файл без MCP?
Выполните `depyler compile script.py` и запустите `./script`. Имя результата задает `-o my_app`, отладочную сборку включает `--profile debug`.
Что делать, если Rust не собирается?
Запустите `depyler transpile example.py --explain` или `--trace`: команды показывают решения транспайлера. Затем проверьте, нет ли в коде неподдерживаемых возможностей.
Нужны ли аннотации типов?
Да. Типы Rust строятся по аннотациям Python, поэтому добавьте их до перевода.
Как подключить сервер к клиенту?
Добавьте запись `depyler` в `claude_desktop_config.json` с командой `depyler` и аргументами `agent start --foreground --port 3000`, затем перезапустите клиент.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыrust-analyzer MCP — навигация по коду Rust для агента
r3bl-rust-analyzer-mcp-server
MCP-сервер на потоках Rust: агент получает подсказки, переходы к определениям, ссылки, форматирование и диагностику компилятора от rust-analyzer
Бинарник на Rust, он же MCP-сервер: сложность, технический долг, мертвый код и контекст репозитория в Claude Code и Cline.
MCP-сервер по документации Rust: агент ищет элементы крейтов, читает исходники и разбирает дерево зависимостей.
Три скилла и конфиг clippy: агент пишет, проверяет и переносит код на идиоматичный Rust, а правила проходят в CI
Rust-бинарник для агентов и терминала: через tree-sitter находит определение символа, его вызовы и зависимости файла
Локальный граф знаний о коде с историей версий: MCP-сервер отвечает агенту, кто вызывает функцию и что сломается от правки
Коротко о README
Версия 4.1.1: перевод аннотированного Python в Rust, проверку поведения тестами по свойствам и поддержку 27 модулей стандартной библиотеки. Отдельное руководство по MCP лежит в `docs/MCP_QUICKSTART.md`.