PyTauri — это способ создавать Tauri-приложения на Python, почти без Rust.
Если кратко, PyTauri — это Python-биндинги для Tauri, позволяющие писать backend-логику вашего приложения на Python, а интерфейс — на HTML/JS, как в обычном Tauri.
Tauri — это лёгкий и быстрый фреймворк для создания кроссплатформенных desktop-приложений.
#PyTauri #Tauri #Python #Desktop #GUI #Webview #Pyo3 #Rust #DevTools
https://github.com/pytauri/pytauri
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pytauri/pytauri: Tauri binding for Python through Pyo3
Tauri binding for Python through Pyo3. Contribute to pytauri/pytauri development by creating an account on GitHub.
1🔥3⚡2 2
Bitwave — это высококачественный, ориентированный на разработчиков аудиоформат, созданный для современных сценариев: пространственный звук, динамический темп и мультитрековые сетапы. Минималистичный по структуре, но мощный по возможностям: от стерео до 3D/ambisonic, VR/AR и адаптивной музыки.
.bwx для VR/AR и иммерсивных инсталляций.Game dev, VR/AR, live‑сеты, инсталляции, стриминг, ресёрч, пост‑продакшн и продвинутая музыкальная продакшн‑цепочка.
#Bitwave #AudioDev #SpatialAudio #VR #AR #GameAudio #MusicTech #Python #Rust #AudioFormat #ImmersiveAudio #Multichannel #GenerativeMusic #DJ #DSP
https://github.com/makalin/Bitwave
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥2
Transtractor — это библиотека на Rust с Python‑API для извлечения транзакций из PDF‑выписок банка в CSV или DataFrame, без какого‑либо AI.
my_config.json, не трогая ядро парсинга.pip install transtractor
from transtractor import Parser
parser = Parser()
parser.parse("statement.pdf").to_csv("statement.csv")
data = parser.parse("statement.pdf").to_pandas_dict()
Далее данные можно анализировать в Pandas/Excel.
parser.load("my_config.json")
parser.parse("statement.pdf").to_csv("statement.csv")#Transtractor #Rust #Python #PDF #BankStatements #FinTech #DataExtraction #Pandas #PersonalFinance #OpenSource
https://github.com/transtractor/transtractor-lib
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - transtractor/transtractor-lib: A Python/Rust library for PDF bank statement extraction.
A Python/Rust library for PDF bank statement extraction. - transtractor/transtractor-lib
1 3👍1
WebRockets — это высокопроизводительный WebSocket-сервер для Python с нативной поддержкой Django. Ядро написано на Rust (PyO3 + axum + fastwebsockets) для максимальной скорости — до 10x быстрее Daphne в бенчмарках.
runwebsockets.from webrockets import WebsocketServer
server = WebsocketServer(host="0.0.0.0", port=8080)
echo = server.create_route("ws/echo/", "echo")
@echo.connect("before")
def on_connect(conn): print(f"Connected: {conn.path}")
@echo.receive
def on_message(conn, data): conn.send(f"You said: {data}")
server.start()
Django (websockets.py в app):
from webrockets.django import server
from webrockets.django.auth import SessionAuthentication
chat = server.create_route("ws/chat/", "chat", authentication_classes=[SessionAuthentication()])
@chat.connect("before")
def on_connect(conn): print(f"User {conn.user} joined")
@chat.receive(match=Match("type", "message"), schema=ChatMessage)
def on_message(conn, data: ChatMessage): conn.broadcast([data.room], data.content)
# Запуск: python manage.py runwebsockets
pip install webrockets[django,schema].#WebRockets #WebSocket #Django #Rust #Python #Async #HighPerformance #WebDev #OpenSource
https://github.com/ploMP4/webrockets
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - ploMP4/webrockets: High-performance rust powered websockets for python
High-performance rust powered websockets for python - ploMP4/webrockets
2👍6🔥2 2
Zoocache — это высокопроизводительная библиотека кеширования с ядром на Rust и обвязкой для Python, заточенная под сценарии, где важно одновременно и быстро читать, и строго соблюдать консистентность данных. В отличие от простых TTL‑кешей, она использует семантические зависимости и иерархическую инвалидацию, поэтому вы можете «убить» сразу целые группы связанных ключей (например,
user:* или region:eu:*) одним вызовом.invalidate("store:1") очищает всё store:1:*).pip install zoocache или uv add zoocache.@cacheable + deps и add_deps() задают зависимости, а invalidate("user:123") гарантированно очищает все связанные кэши для этого пользователя._save/_delete, учёт транзакций, авто‑зависимости по JOIN‑ам и поддержка Django REST Framework сериализаторов.Zoocache особенно уместен там, где много сложных связей (каталоги, прайсинги, инвентарь, персонизация), высокая доля чтения и требуется строгий «сразу видно апдейт», а не «подождём, пока TTL протухнет».
#Python #Rust #Caching #Zoocache #Redis #Django #HighLoad #HLC #MsgPack #LZ4 #SingleFlight
https://github.com/albertobadia/zoocache
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - albertobadia/zoocache: Semantic dependency based cache with high performance and concurrency in mind.
Semantic dependency based cache with high performance and concurrency in mind. - albertobadia/zoocache
⚡2👍2 2
silkworm-rs — async‑first фреймворк для веб‑скрейпинга на Python с «двигателем» на Rust: HTTP‑клиент rnet (имперсонация браузера) + быстрый HTML‑парсер scraper-rs, минимальная модель Spider/Request/Response, middlewares и pipelines без тонны бойлерплейта. Он сразу даёт конкурентный движок с backpressure (очередь по умолчанию
concurrency * 10), таймаутами на запрос, дедупликацией по URL и структурированным логгированием со статистикой по RPS, памяти, количеству URL и ошибок.request.meta["proxy"].Request; HTMLResponse даёт удобные селекторы (select, select_first) и response.follow() для переходов.SkipNonHTMLMiddleware для отбрасывания не‑HTML.run_spider), uvloop на *nix, winloop на Windows и trio‑бэкенд (run_spider_trio) — для I/O‑bound задач это даёт 2–4x прирост.fetch_html_cdp, CDPClient и spider‑примеры). pip install silkworm-rs
# или (рекомендуется)
uv pip install --prerelease=allow silkworm-rs
Дальше — наследуете
Spider, реализуете async def parse(...), yield’ите словари или Request, а run_spider(...) берёт на себя конкурентный движок, middleware’ы и выгрузку данных в нужные пайплайны.#Python #Rust #WebScraping #AsyncIO #silkworm #rnet #scraperRS #DataEngineering #ETL #uvloop
https://github.com/BitingSnakes/silkworm
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - BitingSnakes/silkworm: Async web scraping framework on top of Rust. Works with Free-threaded Python (`PYTHON_GIL=0`).
Async web scraping framework on top of Rust. Works with Free-threaded Python (`PYTHON_GIL=0`). - BitingSnakes/silkworm
Oxyde ORM — асинхронный type‑safe ORM с Pydantic v2 и быстрым Rust‑ядром, сделанный в духе Django ORM, но с современным API и предсказуемым поведением.
User.objects.filter(...), аннотации полей и Meta‑класс для таблиц.oxyde-core), что даёт высокий ops/sec в бенчмарках против популярных ORM.asyncio, с поддержкой PostgreSQL, SQLite и MySQL, транзакций и nested transaction.atomic().db.lifespan(...) для подключения БД на уровне приложения. pip install oxyde
from oxyde import Model, Field
class User(Model):
id: int | None = Field(default=None, db_pk=True)
name: str
email: str = Field(db_unique=True)
#python #orm #asyncio #pydantic #rust #fastapi #postgresql #sqlite #mysql
https://github.com/mr-fatalyst/oxyde
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mr-fatalyst/oxyde: Oxyde ORM is a type-safe, Pydantic-centric asynchronous ORM with a high-performance Rust core designed…
Oxyde ORM is a type-safe, Pydantic-centric asynchronous ORM with a high-performance Rust core designed for clarity, speed, and reliability. - mr-fatalyst/oxyde
⚡2👍2 2
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
Formualizer — это spreadsheet‑движок на Rust с 320+ Excel‑функциями, который реально вычисляет формулы (не просто читает XLSX), поддерживает dependency graph и доступен из Python/Rust/WASM.
PMT, XLOOKUP, FILTER, IRR и др. + dynamic arrays и spill semantics.pip install formualizer
#python #rust #excel #spreadsheet #formualizer #fintech
https://github.com/psu3d0/formualizer
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - PSU3D0/formualizer: The fastest embeddable spreadsheet engine - parse, evaluate & mutate Excel workbooks from Rust, Python…
The fastest embeddable spreadsheet engine - parse, evaluate & mutate Excel workbooks from Rust, Python, or the browser. Arrow-powered, 400+ functions. - PSU3D0/formualizer
⚡3🔥2👍1
rsloop — это альтернативный event loop для
asyncio, написанный на Rust через PyO3.Каждый
rsloop.Loop держит выделенный Rust‑поток для координации цикла и I/O, при этом ваши Python‑корутины продолжают выполняться в том же потоке, откуда вы вызываете run_forever() / run_until_complete() (обычно main‑поток).pip install rsloop
# или
uv add rsloop
import rsloop
async def main():
...
rsloop.run(main())
Или вручную:
import asyncio, rsloop
loop = rsloop.new_event_loop()
asyncio.set_event_loop(loop)
try:
loop.run_until_complete(...)
finally:
asyncio.set_event_loop(None)
loop.close()
compio с io_uring), Python‑колбэки и таски остаются на Python‑потоке.run_in_executor, TCP/Unix сокеты, пайпы, сабпроцессы, сигналы, Windows‑пайпы и subprocess‑workflow.rsloop патчит asyncio.open_connection() и asyncio.start_server() для использования нативных быстрых стримов, когда запущен rsloop.Loop и не используется TLS; поведение можно отключить через RSLOOP_USE_FAST_STREAMS=0.with rsloop.profile(): rsloop.run(main()) или ручное start_profiler()/stop_profiler() при сборке с фичей profiler.asyncio и близок к uvloop, иногда чуть медленнее по задачам, но выигрывает по p99‑латентности в реальных API‑нагрузках.#python #asyncio #rust #rsloop #eventloop #io_uring #fastapi #uvloop #PyO3 #profiling
https://github.com/RustedBytes/rsloop
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - RustedBytes/rsloop: An event loop for asyncio written in Rust
An event loop for asyncio written in Rust. Contribute to RustedBytes/rsloop development by creating an account on GitHub.
1🔥4👍3
Honker — это SQLite-расширение, которое приносит в SQLite
NOTIFY/LISTEN- логику в стиле Postgres.Без брокера. Без polling. Без лишней инфраструктуры.
Идея простая: если у вас SQLite — то очередь и события должны жить прямо в том же
.db файле. INSERT INTO orders ... и queue.enqueue(...) могут коммититься вместе — это очень удобно и надежно.А для пробуждения процессов используется `PRAGMA data_version`, что дает реакцию почти как push — быстро и без ручного опроса.
#SQLite #Rust #OpenSource #PubSub #Queue #Backend #Python #NodeJS #Kotlin #DotNet #DevTools
https://github.com/russellromney/honker
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - russellromney/honker: SQLite extension + bindings for Postgres NOTIFY/LISTEN semantics with durable queues, streams, pub/sub…
SQLite extension + bindings for Postgres NOTIFY/LISTEN semantics with durable queues, streams, pub/sub, and scheduler - russellromney/honker
1👍2 2 2
Feloxi - это мощная self-hosted платформа для мониторинга очередей задач Python, в первую очередь — Celery. Инструмент предоставляет живые дашборды, поиск по истории задач и гибкую систему алертов.
Вам не нужно устанавливать никаких дополнительных агентов или менять код приложения! Feloxi просто подключается к вашему брокеру (Redis или RabbitMQ), читает стандартные события, которые и так генерирует Celery, и бережно сохраняет их в ClickHouse.
GET /metrics для легкой интеграции с вашей инфраструктурой мониторинга.Добавьте в
celeryconfig.py:worker_send_task_events = True
task_send_sent_event = True
task_track_started = True
Перезапустите воркеры с флагом
--events.Зайдите в UI Feloxi, нажмите Add Broker и введите URL вашего Redis/RabbitMQ. Всё!
git clone https://github.com/thesaadmirza/feloxi.git
cd feloxi
cp .env.example .env
docker compose up -d
Стек: Rust (Axum), Next.js 15, PostgreSQL, ClickHouse и Redis. Поддерживается установка в Kubernetes через Helm-чарты.
#Python #Celery #DevOps #Monitoring #RabbitMQ #Redis #Rust #NextJS #OpenSource #Backend
https://github.com/thesaadmirza/feloxi
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - thesaadmirza/feloxi: Real-time Celery task queue monitoring — Rust/Axum backend, Next.js dashboard, ClickHouse analytics
Real-time Celery task queue monitoring — Rust/Axum backend, Next.js dashboard, ClickHouse analytics - thesaadmirza/feloxi
1👍4 2🔥1
Lifeguard — это быстрый инструмент статического анализа, созданный для безопасного внедрения «ленивых» импортов (Lazy Imports) в Python-проектах.
Обычно в Python каждый
import выполняется моментально при чтении файла. Ленивые импорты откладывают реальную загрузку модуля до момента первого обращения к импортированному имени. Это радикально снижает потребление памяти и ускоряет запуск приложений, особенно в огромных кодовых базах с глубоким деревом зависимостей.Перевести старый код на ленивые импорты вслепую не выйдет — часть логики обязательно сломается. Например, проблемы возникнут, если:
sys.modules, ожидая, что предыдущие импорты уже выполнились.__init_subclass__.Найти все такие места в большом проекте вручную практически невозможно.
Инструмент (написанный на Rust) параллельно анализирует AST-дерево ваших исходников и выявляет все несовместимые паттерны. Lifeguard максимально консервативен: если он не может программно доказать, что модуль безопасен для ленивого импорта, он помечает его как небезопасный. Стабильность продакшена здесь ставится выше микрооптимизаций.
LAZY_ELIGIBLE (полностью безопасные модули) и LOAD_IMPORTS_EAGERLY (модули-исключения). В будущем (в Python 3.15) этот JSON можно будет использовать в качестве фильтра для функции importlib.util.lazy_import, чтобы управлять импортами автоматически.Находится в стадии беты и готовится к выходу Python 3.15 (уже протестирован на версиях 3.12 и 3.14). Сейчас для работы требуется Rust (nightly) и запуск через
cargo run, но разработчики уже готовят пакет для PyPI и готовые GitHub Actions.#Python #Rust #LazyImports #PEP810 #StaticAnalysis #DevTools #Backend #Оптимизация
https://github.com/facebook/Lifeguard
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - facebook/Lifeguard: Lifeguard is a static analyzer to detect Lazy Imports incompatibilities and ease the adoption overhead…
Lifeguard is a static analyzer to detect Lazy Imports incompatibilities and ease the adoption overhead for Lazy Imports in Python - facebook/Lifeguard
1🔥4⚡3
Python UUID Utils — это сверхбыстрая замена стандартного модуля
uuid в Python, написанная на Rust. Инструмент разработан как полноценная альтернатива (drop-in replacement): вы можете кратно ускорить генерацию уникальных идентификаторов в вашем приложении без кардинального переписывания кодовой базы.Согласно официальным тестам на Python 3.14, ускорение получается просто космическим:
uuid4(): Стандартная библиотека — 1189 нс | uuid_utils — всего 61 нс (быстрее почти в 20 раз!).uuid7(): Стандартная библиотека — 1336 нс | uuid_utils — 84 нс (быстрее в 15 раз!).hex) или байтов работает быстрее в 4–5 раз.Некоторые крупные фреймворки строго требуют, чтобы объекты UUID были именно инстансами стандартного класса
uuid.UUID из встроенной библиотеки Python, а не сторонними сабклассами. Разработчики это учли! Для таких случаев есть специальный модуль совместимости:import uuid_utils.compat as uuid
# Возвращает родной объект stdlib uuid.UUID,
# но генерирует его в 4-5 раз быстрее стандартного модуля!
my_id = uuid.uuid4()
pip install uuid-utils
# или через conda
conda install -c conda-forge uuid-utils
#Python #Rust #Performance #UUID #Backend #Django #DevTools #Programming #OpenSource #Оптимизация
https://github.com/aminalaee/uuid-utils
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - aminalaee/uuid-utils: Fast, drop-in replacement for Python's uuid module, powered by Rust.
Fast, drop-in replacement for Python's uuid module, powered by Rust. - aminalaee/uuid-utils
3⚡2👍2 2
Symbolica - это высокопроизводительная библиотека компьютерной алгебры для Python и Rust. Она спроектирована специально для работы с огромными математическими выражениями, символьных преобразований (symbolic rewrites), точной полиномиальной арифметики и оптимизированных численных вычислений.
Этому инструменту доверяют ученые из CERN, а также ведущие исследовательские группы из ETH Zurich, Университета Цюриха, Университета Берна и Технологического института Карлсруэ.
Библиотека позволяет изящно совмещать символьные манипуляции, разложение в ряды и финальный численный расчет:
from symbolica import *
θ, κ = S("θ", "κ")
V = κ * (1 - θ.cos())
τ = -V.derivative(θ) # Символьное дифференцирование: −κ*sin(θ)
# Разложение крутящего момента в ряд для модели малых углов
# Результат: −κθ + 1/6*κθ³ + O(θ⁴)
τ_small = τ.series(θ, 0, 3)
# Подстановка точек измерений, автоматическое решение
# параметрической линейной системы и вывод численного результата...
pip install symbolica#Symbolica #Python #Rust #Math #ComputerAlgebra #CERN #DataScience #Physics #CUDA #DevTools #OpenSource
https://github.com/symbolica-dev/symbolica
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - symbolica-dev/symbolica: Symbolica is a high-performance computer algebra library for Python and Rust. Manipulate large…
Symbolica is a high-performance computer algebra library for Python and Rust. Manipulate large expressions, match patterns, and generate optimized numerical code — at unprecedented speed. - symboli...
1 4👍3
Centaur - это self-hosted платформа для командной работы с ИИ-агентами прямо через интерфейс Slack или REST API.
Вместо того чтобы каждый инженер настраивал персональных ботов и локальные скрипты на своей машине, Centaur предоставляет единого общего ассистента: вы тегаете
@centaur в треде Slack, бот выделяет изолированную среду, запускает задачи, использует внутренние инструменты компании и возвращает готовый ответ в переписку.iron-proxy, агент никогда не получает «сырые» API-ключи в переменные окружения. Внутри песочницы используются токены-заглушки, а реальные учетные данные из 1Password подставляются на лету только при исходящих запросах к доверенным адресам.centaur-tools).Панель управления и API платформы написаны на Rust (Axum) с сохранением состояний в PostgreSQL, интерфейс взаимодействия со Slack реализован отдельным микросервисом, а задачи оркестрируются в среде Kubernetes.
#Centaur #AIAgents #Slack #Kubernetes #Rust #DevOps #DevTools #OpenSource #Automation #Security
https://github.com/paradigmxyz/centaur
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - paradigmxyz/centaur: Centaur is frontier, agentic infrastructure that you own. Centaur is like Claude Tag, but open source…
Centaur is frontier, agentic infrastructure that you own. Centaur is like Claude Tag, but open source and on steroids. - paradigmxyz/centaur
3⚡2🔥2 1
Arid - это сверхбыстрый инструмент для поиска дублирующегося кода в Python-проектах, написанный на Rust.
Проект создан как узкоспециализированная замена анализатору дубликатов из Pylint (правило
R0801 / утилита symilar). Arid не пытается быть еще одним универсальным линтером, а идеально дополняет Ruff: пока Ruff форматирует и линтит код, Arid берет на себя строгий контроль принципа DRY (Don't Repeat Yourself).jscpd, Arid парсит синтаксис языка и поддерживает умную нормализацию. При поиске дубликатов можно исключать комментарии, докстринги, блоки импортов и сигнатуры функций.--write-baseline arid-baseline.json). В CI проверяются только новые дубликаты, не ломая сборки на старом коде.# arid: disable / # arid: enable. Опция --suppression-status --fail-on-stale отслеживает и требует удалять комментарии подавления, если код вокруг изменился и дубликата больше нет.pre-commit (анализирует весь проект целиком, а не только staged-файлы) и конфигурация через секцию [tool.arid] в pyproject.toml.Установка:
# Через uv (изолированно):
uv tool install arid
# Или через pip:
pip install arid
Использование в связке с Ruff:
ruff check .
arid .
Пример конфигурации в
pyproject.toml:Ini, TOML
[tool.arid]
min-lines = 5
ignore-comments = true
ignore-docstrings = true
ignore-imports = true
ignore-signatures = true
exclude = ["generated/**", "vendor/**"]
#Python #Rust #Arid #Ruff #Pylint #DRY #CodeQuality #CleanCode #DevTools #OpenSource #CICD
https://github.com/sponge-b0b/arid
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - sponge-b0b/arid: Fast Python duplicate-code checker written in Rust. A focused replacement for Pylint R0801 that complements…
Fast Python duplicate-code checker written in Rust. A focused replacement for Pylint R0801 that complements Ruff. - sponge-b0b/arid
TonIO - это многопоточный асинхронный рантайм для free-threaded Python (сборки без GIL), написанный на Rust поверх крейта
mio и вдохновленный архитектурой Tokio, Trio и TinyIO.В отличие от стандартного
asyncio, чей цикл событий (event loop) жестко привязан к одному системному потоку, TonIO спроектирован под реалии современного многопоточного Python 3.13+ (PEP 703): рантайм автоматически распределяет и исполняет корутины параллельно на нескольких ядрах процессора.tonio.colored предоставляет привычный синтаксис async / await.tonio позволяет писать асинхронный код через обычные генераторы и yield, полностью избавляя от проблемы «цветных функций».mio: Высокопроизводительный неблокирующий системный I/O (epoll, kqueue, IOCP) и планировщик задач прямо под капотом Python.tonio.scope() гарантирует корректную отмену и сбор всех дочерних корутин при выходе из контекста или возникновении исключений.tonio.select() для конкурентных гонок задач (отменяет оставшиеся корутины при первом завершении).Event и комбинируемые ожидатели Waiter через операторы пересечения и объединения (w1 & w2, w1 | w2).Lock, Semaphore, Barrier и каналы передачи сообщений (bounded и unbounded) с неблокирующими методами send_nowait / receive_nowait.open_tcp_stream, serve_tcp).tonio.io для подключения любых файловых дескрипторов ОС к системному поллеру.tonio.fs и управление подпроцессами (run_process, open_process).@pytest.mark.tonio и авто-режимом для тестирования асинхронного кода.С классическим синтаксисом
async / await:import tonio.colored as tonio
async def fetch_data(task_id: int):
await tonio.sleep(0.5)
return f"Результат {task_id}"
@tonio.main
async def main():
# Параллельный запуск задач в пуле потоков рантайма
parallel = tonio.spawn(
fetch_data(1),
fetch_data(2)
)
extra = await fetch_data(3)
res1, res2 = await parallel
print([res1, res2, extra])
main()
С синтаксисом на чистом
yield (без async/await):import tonio
def fetch_data(task_id: int):
yield tonio.sleep(0.5)
return f"Результат {task_id}"
@tonio.main
def main():
parallel = tonio.spawn(fetch_data(1), fetch_data(2))
extra = yield fetch_data(3)
res1, res2 = yield parallel
print([res1, res2, extra])
main()
⚠️ Важно: Проект находится в активной разработке (WIP), не совместим напрямую с объектами asyncio (для интеграций доступен проект-патчер TonIO-Monkey) и рассчитан исключительно на free-threaded Python без GIL.
#Python #Rust #TonIO #Async #NoGIL #FreeThreaded #Tokio #Concurrency #Multithreading #Performance #DevTools #OpenSource
https://github.com/gi0baro/tonio
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - gi0baro/tonio: A multi-threaded async runtime for Python
A multi-threaded async runtime for Python. Contribute to gi0baro/tonio development by creating an account on GitHub.
👍3🔥3
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