Bimetal: один Rust-код для Python и TypeScript-пакетов

Bimetal: один Rust-код для Python и TypeScript-пакетов

В реестре crates.io появился инструмент Bimetal, который позволяет из одной библиотеки на Rust собрать готовые пакеты для Python и TypeScript. Оба пакета вызывают один и тот же скомпилированный код, а типы, ошибки и документация остаются синхронными на всех платформах.

Как это устроено

Разработчик помечает функции, типы и impl-блоки, которые должны быть доступны снаружи. Команда bimetal build компилирует библиотеку под каждую платформу, читает API из скомпилированного кода и генерирует типизированные пакеты в Python- и npm-проекты. Python-пакет представляет собой нативную расширение CPython, а TypeScript-пакет запускает Rust как WebAssembly — в Node.js и браузерах — либо как нативный аддон Node.js.

Сгенерированные файлы коммитятся в репозиторий, поэтому любое изменение API видно на код-ревью. Команда bimetal check в CI падает, если файлы не совпадают с Rust побайтово. Для сборки нужны Rust 1.94 с Wasm-таргетом, Python 3.11 и Node.js 20.16.

Что получает каждая платформа

Структуры и enum’ы с атрибутом Model превращаются в Pydantic-модели и StrEnum в Python, а в TypeScript — в интерфейсы и строковые объединения. Типы ошибок становятся исключениями со стабильным кодом в Python и объектами Error с кодом в TypeScript. Impl-блоки становятся классами с поддержкой with и for в Python и using и for…of в TypeScript. Асинхронные функции превращаются в корутины и Promise соответственно. Байтовые буферы отображаются на bytes и NumPy-массивы в Python и Uint8Array в TypeScript, а значения Arrow читаются через pyarrow, Polars или DuckDB без копирования и через apache-arrow.

Что это значит

Bimetal решает давнюю боль команд, которые пишут ядро на Rust и вынуждены поддерживать обёртки для разных языков вручную. Единый источник правды для типов, кодов ошибок и документации снижает риск рассинхронизации между платформами и упрощает релизы. Для IT-специалистов это ещё один аргумент в пользу Rust как языка для общих библиотек.

Подробности и примеры кода доступны на странице пакета.

Если вы хотите глубже разобраться в том, как Rust интегрируется с другими языками и какие подходы к общим библиотекам существуют сегодня, обратите внимание на материалы о кроссплатформенной разработке. Узнайте больше о технологиях, которые меняют работу разработчиков.

📌 Чтобы не пропустить новые публикации, подписывайтесь там, где вам удобнее: Дзен или MAX.

💛 Если статья оказалась полезной, поддержите автора донатом.

Материал подготовлен на основе информации из открытых источников. Все права на исходные материалы принадлежат их авторам. Если вы являетесь правообладателем и возражаете против использования, свяжитесь с нами по адресу info@11st.press.

Related Posts

ИИ научился управлять ИИ: программисты переживают второй кризис за год

ИИ научился управлять ИИ: программисты переживают второй кризис за годПомните, как в начале года мы все учились разговаривать с кодовыми агентами? Осваивали промпты, гордились, что умеем заставить Claude Code или Codex писать код за нас. А теперь появился инструмент, который умеет управлять этими агентами сам — и это меняет правила игры.Речь о GrokBot — системе,…

Kubernetes снова обновился: что важно знать, если вы деплоите в облако

Kubernetes снова обновился: что важно знать, если вы деплоите в облакоЕсли ваши сервисы живут в Kubernetes, вы наверняка привыкли, что «стабильных» релизов не бывает слишком много. Очередная версия платформы приносит не только свежие фичи, но и напоминание: инфраструктурный код требует такого же ухода, как и приложение. Давайте спокойно разберёмся, что там внутри и почему это…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Возможно, вы пропустили

Цифровой рубль вошёл в нашу жизнь: что это значит для кошелька и повседневных платежей

  • От sbrayn
  • 13 ноября, 2026
  • 4 views
Цифровой рубль вошёл в нашу жизнь: что это значит для кошелька и повседневных платежей

IPO снова в моде: почему бизнес спешит на биржу

  • От sbrayn
  • 13 ноября, 2026
  • 8 views
IPO снова в моде: почему бизнес спешит на биржу

Без уколов: умные часы смогут следить за сахаром в крови

  • От sbrayn
  • 13 ноября, 2026
  • 8 views
Без уколов: умные часы смогут следить за сахаром в крови

Boston Dynamics поставила Atlas на колёса — и он сразу выдал пируэт

  • От sbrayn
  • 13 ноября, 2026
  • 4 views
Boston Dynamics поставила Atlas на колёса — и он сразу выдал пируэт

Убыток в 8 миллионов, но есть и хорошая новость: разбираем отчёт Economatica

  • От sbrayn
  • 13 ноября, 2026
  • 4 views
Убыток в 8 миллионов, но есть и хорошая новость: разбираем отчёт Economatica

ЕС берётся за «тёмные паттерны»: нас больше не будут подталкивать к покупкам

  • От sbrayn
  • 13 ноября, 2026
  • 4 views
ЕС берётся за «тёмные паттерны»: нас больше не будут подталкивать к покупкам