#prog #python #article
Writing Python like it's Rust
Правда, только пример про мьютекс реально связан с Rust, остальное в принципе про плюшки системы типов.
Writing Python like it's Rust
Правда, только пример про мьютекс реально связан с Rust, остальное в принципе про плюшки системы типов.
Kobzol’s blog
Writing Python like it’s Rust
You can check out a YouTube recording of a talk based on this blog post.
#prog #rust #python #article
The easiest way to speed up Python with Rust
Статья про rustimport — библиотеку для лёгкой интеграции Rust-кода в код на Python, позволяющая импортировать отдельные rs-файлы как расширения. Со стороны Python требует лишь установить import hook.
Отдельно отмечается, что применение у этого метода скорее для прототипирования — по мере роста объёма кода на Rust преимущества rustimport становятся менее полезными.
The easiest way to speed up Python with Rust
Статья про rustimport — библиотеку для лёгкой интеграции Rust-кода в код на Python, позволяющая импортировать отдельные rs-файлы как расширения. Со стороны Python требует лишь установить import hook.
Отдельно отмечается, что применение у этого метода скорее для прототипирования — по мере роста объёма кода на Rust преимущества rustimport становятся менее полезными.
Python⇒Speed
The easiest way to speed up Python with Rust
Rust can make your Python code much faster; here’s how to start using it as quickly as possible.
#prog #python #amazingopensource
Ruff
An extremely fast Python linter, written in Rust.
⚡️ 10-100x faster than existing linters
🐍 Installable via pip
🛠 pyproject.toml support
🤝 Python 3.11 compatibility
📦 Built-in caching, to avoid re-analyzing unchanged files
🔧 Autofix support, for automatic error correction (e.g., automatically remove unused imports)
📏 Over 500 built-in rules
⚖️ Near-parity with the built-in Flake8 rule set
🔌 Native re-implementations of dozens of Flake8 plugins, like flake8-bugbear
⌨️ First-party editor integrations for VS Code and more
🌎 Monorepo-friendly, with hierarchical and cascading configuration
<...>
> Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running and checking the code.
Ruff
An extremely fast Python linter, written in Rust.
⚡️ 10-100x faster than existing linters
🐍 Installable via pip
🛠 pyproject.toml support
🤝 Python 3.11 compatibility
📦 Built-in caching, to avoid re-analyzing unchanged files
🔧 Autofix support, for automatic error correction (e.g., automatically remove unused imports)
📏 Over 500 built-in rules
⚖️ Near-parity with the built-in Flake8 rule set
🔌 Native re-implementations of dozens of Flake8 plugins, like flake8-bugbear
⌨️ First-party editor integrations for VS Code and more
🌎 Monorepo-friendly, with hierarchical and cascading configuration
<...>
> Ruff is so fast that sometimes I add an intentional bug in the code just to confirm it's actually running and checking the code.
GitHub
GitHub - astral-sh/ruff: An extremely fast Python linter and code formatter, written in Rust.
An extremely fast Python linter and code formatter, written in Rust. - astral-sh/ruff
#prog #python #c #abnormalprogramming #article
Writing a C compiler in 500 lines of Python
С небольшим нюансом: компиляция в WASM и, понятное дело, только весьма небольшого подмножества C. Ну и для достижения ограничения на количество строк компилятор однопроходной.
Writing a C compiler in 500 lines of Python
С небольшим нюансом: компиляция в WASM и, понятное дело, только весьма небольшого подмножества C. Ну и для достижения ограничения на количество строк компилятор однопроходной.
vgel.me
Writing a C compiler in 500 lines of Python
Blog about linguistics, programming, and my projects
#prog #rust #python #performancetrap #article
Rust-Python FFI
Или о некоторых возможных проблемах при интеропе Rust и Python, включая проблемы производительности и проблемы с эргономикой.
Rust-Python FFI
Или о некоторых возможных проблемах при интеропе Rust и Python, включая проблемы производительности и проблемы с эргономикой.
#prog #rust #python #article #suckassstory #performancetrap
Rust std fs slower than Python!? No, it's hardware!
Редкий случай, когда удалось отследить баг и подтвердить, что он действительно в железе. Ссылки на патчи в glibc прилагаются.
TL;DR: оба варианта кода используют mmap в качестве буфера для считывания из файла, но в Python этот буфер используется с некоторым смещением. На некоторых процессорах — в том числе в том, который используется на машине автора — команда
Rust std fs slower than Python!? No, it's hardware!
Редкий случай, когда удалось отследить баг и подтвердить, что он действительно в железе. Ссылки на патчи в glibc прилагаются.
TL;DR: оба варианта кода используют mmap в качестве буфера для считывания из файла, но в Python этот буфер используется с некоторым смещением. На некоторых процессорах — в том числе в том, который используется на машине автора — команда
rep movsb
— которая использовалась в реализации memcpy — парадоксальным образом работает на порядок более медленно при работе с выровненным буфером.xuanwo.io
Rust std fs slower than Python!? No, it's hardware!
Achieving Data Freedom Through Open Source and Rust