This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Новый фреймворк Function (fxn) компилирует Python-функции в нативный код с производительностью, сравнимой с Rust.
🧠 Как это работает?
- Используется символическое трассирование на CPython для анализа функций.
- Генерируется промежуточное представление (IR).
- IR транслируется в C++ или Rust, а затем компилируется в бинарный код.
- Поддерживаются платформы: Linux, Android, WebAssembly и другие.
📦 Пример:
@compile
def fma(x: float, y: float, z: float) -> float:
return x * y + z
После компиляции вы получаете нативный бинарный файл, который можно запускать без интерпретатора Python.
🔗 Подробнее (https://blog.fxn.ai/python-at-the-speed-of-rust/)
🔗 Github (https://github.com/olokobayusuf/)
#Python #Rust #fxn #Compiler #Performance #AI #ML #Wasm
@Python_Community_ru
🧠 Как это работает?
- Используется символическое трассирование на CPython для анализа функций.
- Генерируется промежуточное представление (IR).
- IR транслируется в C++ или Rust, а затем компилируется в бинарный код.
- Поддерживаются платформы: Linux, Android, WebAssembly и другие.
📦 Пример:
@compile
def fma(x: float, y: float, z: float) -> float:
return x * y + z
После компиляции вы получаете нативный бинарный файл, который можно запускать без интерпретатора Python.
🔗 Подробнее (https://blog.fxn.ai/python-at-the-speed-of-rust/)
🔗 Github (https://github.com/olokobayusuf/)
#Python #Rust #fxn #Compiler #Performance #AI #ML #Wasm
@Python_Community_ru
XY - новая open-source библиотека визуализации от команды Reflex. Она пытается объединить удобство Matplotlib с интерактивностью браузерных графиков и производительностью Rust.
Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.
import xy
chart = xy.line_chart(
xy.line(
[1, 2, 3, 4, 5],
[120, 180, 165, 240, 310]
)
)
chart
Есть даже совместимость с привычным стилем Matplotlib:
import xy.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
По собственному бенчмарку разработчиков на Apple M5 Pro:
- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.
Под капотом:
Python API
↓
ColumnStore
↓
Rust compute
↓
binary buffers
↓
WebGL2 / Canvas
Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.
Установка:
pip install xy
Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.
Источник:
https://github.com/reflex-dev/xy
#Python #DataScience #Visualization #Rust
@Python_Community_ru
Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.
import xy
chart = xy.line_chart(
xy.line(
[1, 2, 3, 4, 5],
[120, 180, 165, 240, 310]
)
)
chart
Есть даже совместимость с привычным стилем Matplotlib:
import xy.pyplot as plt
fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()
По собственному бенчмарку разработчиков на Apple M5 Pro:
- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.
Под капотом:
Python API
↓
ColumnStore
↓
Rust compute
↓
binary buffers
↓
WebGL2 / Canvas
Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.
Установка:
pip install xy
Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.
Источник:
https://github.com/reflex-dev/xy
#Python #DataScience #Visualization #Rust
@Python_Community_ru