py2many — это Python‑транспайлер, который автоматически преобразует Python‑код в Rust, C++, Go, Zig, Julia, Kotlin, Nim, Dart и другие статически типизированные языки.
pip install py2many
# Конвертация в Rust
py2many --rust tests/cases/fib.py
# Конвертация в C++
py2many --cpp tests/cases/fib.py
# Конвертация в Go/Kotlin/Julia/Nim/Dart
py2many --go/--kotlin/--julia/--nim/--dart tests/cases/fib.py
#python #transpiler #rust #cpp #golang #performance #py2many
https://github.com/py2many/py2many
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - py2many/py2many: Transpiler of Python to many other languages
Transpiler of Python to many other languages. Contribute to py2many/py2many development by creating an account on GitHub.
👍2🔥2 1
imgui_bundle - это мощный фреймворк для создания интерактивных приложений на Python и C++ под десктоп, мобильные устройства и веб.
Фреймворк поставляется по принципу «всё включено» (batteries included). В коробке уже есть всё необходимое: построение сложных графиков (2D и 3D), поддержка Markdown, редакторы нод (node editors), продвинутые инструменты для инспекции изображений и многое другое.
На официальном сайте (imgui-bundle.pages.dev) доступны:
#Python #CPP #GUI #DearImGui #ImGuiBundle #WebAssembly #DevTools #CrossPlatform #Программирование
https://github.com/pthom/imgui_bundle
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pthom/imgui_bundle: Interactive Python & C++ apps for desktop, mobile, and web - powered by Dear ImGui. Stop fighting…
Interactive Python & C++ apps for desktop, mobile, and web - powered by Dear ImGui. Stop fighting GUI frameworks. Start building. - pthom/imgui_bundle
1🔥4👍3
Shed Skin - это экспериментальный транспайлер, который переводит программы на чистом Python 3 с неявной статической типизацией в оптимизированный код на C++.
На выходе инструмент может собирать как автономные исполняемые файлы, так и скомпилированные C++ модули расширения, которые можно импортировать в обычный Python-код в качестве ускоренных библиотек. В отличие от Cython, Shed Skin не требует ручного описания типов в C-стиле — он выводит их автоматически из логики программы.
shedskin build my_script) или в нативный модуль расширения для вызова из стандартного CPython.Shed Skin поддерживает только строго ограниченное подмножество возможностей языка Python:
random, re, math, time), произвольные тяжелые внешние зависимости подключить нельзя.*args / **kwargs).В Linux / macOS:
shedskin build test
./build/test
В Windows:
shedskin build test
build\test.exe
#Python #Cpp #ShedSkin #Transpiler #Compiler #Performance #Optimization #OpenSource #DevTools #Algorithms
https://github.com/shedskin/shedskin
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - shedskin/shedskin: Shed Skin is a restricted-Python-to-C++ transpiler. Read the introduction below to learn about the…
Shed Skin is a restricted-Python-to-C++ transpiler. Read the introduction below to learn about the restrictions. - shedskin/shedskin
🔥3 2⚡1
Fastlogging-rs - это сверхбыстрый и универсальный кросс-язычный фреймворк для логирования, написанный на Rust и предоставляющий унифицированный API для Python, Rust, C/C++, Go, Java и C#.
Главная проблема традиционных логгеров (например, стандартного модуля
logging в Python) — синхронный ввод-вывод, способный сильно просаживать производительность под высокой нагрузкой.fastlogging-rs решает это архитектурно: вызовы логов абсолютно неблокирующие (non-blocking) и потокобезопасные, а сброс данных во внешние приемники происходит в фоновых потоках. В бенчмарках на запись в файл с ротацией он оказывается быстрее стандартного Python-логгера более чем в 100 раз (0.17 с против 35.2 с).multiprocessing / child processes) в основной процесс с поддержкой глубоких уровней вложенности.JSON, XML, YAML).from fastlogging import Logging
# Инициализация и логирование
log = Logging()
log.info("Привет из fastlogging!")
# Корректное завершение фоновых потоков
log.shutdown(False)
#Fastlogging #Rust #Python #Logging #Performance #Backend #DevTools #Cpp #Golang #Java #OpenSource
https://github.com/brmmm3/fastlogging-rs
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - brmmm3/fastlogging-rs: High-performance async Rust logging library with non-blocking writers and bindings for C, C++,…
High-performance async Rust logging library with non-blocking writers and bindings for C, C++, C#, Go, Java and Python - brmmm3/fastlogging-rs
👍3⚡1
TurboPython - это опережающий (AOT) компилятор, транслирующий статически типизированный Python через современный C++23 напрямую в автономный нативный бинарник без интерпретатора, сборщика мусора и GIL.
В отличие от Cython, mypyc или Nuitka, сгенерированный код вообще не опирается на рантайм CPython и подсчет ссылок, а в отличие от Codon и Shed Skin — не использует сторонний сборщик мусора (GC). Памятью управляет строгая модель владения (Ownership) в стиле Rust, проверяемая прямо во время компиляции. При этом исходные файлы остаются синтаксически валидным кодом на Python, понятным привычным линтерам, IDE и кодинг-агентам.
@noalloc.Own[T], а неявные копирования данных подсвечиваются компилятором еще до запуска программы.spawn) нативных потоков ОС без ограничений GIL. Компилятор на этапе сборки статически проверяет контракты Send и Sync, предотвращая состояние гонки (data races). Доступ к разделяемым ресурсам идет через знакомые примитивы: Arc[Mutex[T]], RwLock, атомики и каналы.int32), литералы и функция len() по умолчанию 32-битные с проверкой переполнения на аппаратном уровне (ошибка вместо тихого заворачивания значения). Стандартный int остается длинной арифметикой произвольной точности.@native, @export(binding="C")), генерирует чистый C++ код с готовыми CMakeLists.txt и умеет компилироваться как в автономные бинарники, так и в нативные модули расширения для стандартного CPython.from dataclasses import dataclass
from tpy import Own, int32
@dataclass
class Stats:
count: int32
total: int32
longest: int32
# Функция передает владение объектом Stats вызывающей стороне
def measure(words: list[str]) -> Own[Stats]:
total, longest = 0, 0
for w in words:
total += len(w)
longest = max(longest, len(w))
return Stats(len(words), total, longest)
s = measure("the quick brown fox jumps over the lazy dog".split())
print(s.count, s.total, s.longest)
Установка компилятора (требуется Python 3.12+ и Clang 19+ / GCC 13+):
# Установка с бандлом компилятора Zig
pip install "tpy-lang[bundled]"
Компиляция и запуск:
# Запуск через JIT-подобный вызов или REPL
tpy stats.py
# Сборка в автономный нативный бинарный файл
tpyc -b stats.py
./__tpyc__/stats.d/release/stats
# Просмотр сгенерированного чистого C++ кода
tpy --dump-code stats.py
#TurboPython #Python #Cpp #Compiler #AOT #Performance #Rust #NoGIL #Multithreading #DevTools #OpenSource #SoftwareEngineering
https://github.com/trozen/tpy-lang
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - trozen/tpy-lang: TurboPython: a Python-to-C++ compiler. Typed Python to native binaries with no Python runtime, no GC…
TurboPython: a Python-to-C++ compiler. Typed Python to native binaries with no Python runtime, no GC, no GIL. - trozen/tpy-lang
👍3⚡2 2