Rust
8.87K subscribers
523 photos
46 videos
3 files
1.06K links
Rust programming language

По всем вопросам- @workakkk

#VRHSZ
Download Telegram
Исследователи NVIDIA перенесли модель владения Rust в GPU-kernels.

Paper: “Fearless Concurrency on the GPU”. В нём представлен cuTile Rust.

Проблема была в том, что при написании кастомных GPU-ядер на Rust разработчикам фактически приходилось выходить за пределы гарантий безопасности Rust.

cuTile Rust пытается это исправить:

* mutable outputs разбиваются на непересекающиеся части
* запуск kernels сохраняет правила ownership от host до device
* при необходимости остаются локальные opt-out механизмы для низкоуровневого контроля

Производительность тоже держится на уровне:

* 7 TB/s для element-wise операций на NVIDIA B200
* 2 PFlop/s для GEMM, это 96% от cuBLAS
* результат сопоставим с cuTile Python в пределах погрешности измерений

Авторы также собрали Grout, inference engine поверх cuTile Rust, и прогнали реальные модели:

* 171 tokens/s для Qwen3-4B на RTX 5090
* 82 tokens/s для Qwen3-32B на B200
* конкурентный уровень рядом с vLLM и SGLang

Итог - безопасный и идиоматичный Rust почти на полной CUDA-производительности.

Для Rust в ML-инфраструктуре это большой шаг.

https://arxiv.org/abs/2606.15991

#Rust #RustLang #GPU #CUDA #MachineLearning #SystemsProgramming #NVIDIA

@data_analysis_ml
🔥4311👍7🥰1👏1🤗1
Предрелизное тестирование 1.96.1

#rustlang #rust

https://blog.rust-lang.org/inside-rust/2026/06/27/1.96.1-prerelease/
🔥64👍3
LLM уже находят реальные memory safety баги в Rust-коде.

И, что неожиданно, это работает очень хорошо.

Сергей Давыдов, руководитель Rust Secure Code Working Group, использовал GPT-5.5 и Claude Opus для аудита unsafe-блоков в популярных Rust-крейтах.

В итоге нашлись десятки реальных багов:

• use-after-free

• чтение за пределами буфера

• data races

• неправильные реализации Send / Sync

Все находки проверялись через miri, чтобы убрать ложные срабатывания.

Почему в Rust это работает лучше, чем в C?

• unsafe явно помечен и изолирован, поэтому LLM сразу понимает, где искать

• miri может точно подтвердить, настоящий баг или нет

• не нужно отслеживать data flow по всей кодовой базе, как часто бывает в C

Получается, дизайн Rust случайно сделал его почти идеальным языком для LLM-аудита безопасности.

Стоит прочитать всем, кто думает про AI в security tooling.

https://gist.github.com/Shnatsel/eb0a4be79a0657e4eb67c4f085f991bc

https://shnatsel.medium.com/the-unreasonable-effectiveness-of-llms-for-auditing-rust-code-d4df8bf0afd3

#Rust #RustLang #MemorySafety #Security #LLM
👍37🤔9💊7🔥5
Трёхлетний GitHub issue в Gleam закрыли не новым алгоритмом, а более аккуратной работой с памятью.

Giacomo Cavalieri из core team переписал pretty printer на Rust arenas.

Раньше каждый вложенный Document заворачивался в отдельный Box и жил отдельной heap allocation. Для рекурсивной структуры это быстро превращается в сотни мелких выделений памяти.

Теперь документы кладутся в общую arena, а код передаёт ссылки на них.

Результат на реальном Gleam-проекте:

* pretty printer: 13ms → 9.8ms
* ускорение: 24%
* полный gleam format: 13% быстрее
* peak memory: 8.4MB → 7.6MB

Дополнительный бонус: arena позволила кэшировать и переиспользовать частые документы вроде ключевых слов, запятых и скобок. То, что раньше аллоцировалось снова и снова, теперь создаётся один раз.

Хороший пример, где производительность упирается в скучные мелкие allocation costs.

Особенно в рекурсивных структурах, где один Box выглядит безобидно, пока их не становится слишком много.

https://giacomocavalieri.me/writing/gleam-rust-arenas

#RustLang #Performance #Gleam
🔥2611👍5
BullMQ теперь есть нативно для Rust.

Одна из самых популярных Redis-очередей для фоновых задач получила стабильный Rust-релиз:


cargo add bullmq-official


Это нормальная Rust-реализация async/await и Tokio: привычный Result для ошибок, безопасное шаринг-поведение между tasks и API, который ощущается как Rust, а не как порт чужой библиотеки.

В v1.0.0 уже есть почти всё, что нужно для production-очередей:

* delayed и prioritized jobs
* deduplication
* retries и backoff
* rate limits
* stalled-job detection
* dependent job trees через FlowProducer
* cron и interval recurring jobs
* QueueEvents для наблюдения за жизненным циклом задач

Новая версия использует те же Lua-скрипты, что уже годами крутятся в Node.js, Python, PHP и Elixir-реализациях.

Это значит, что Rust-сервис может положить job в очередь, а Node.js worker её обработает. Или наоборот. Без миграции, sidecar’ов и adapter layer.

По первым бенчмаркам Rust уже немного быстрее Node.js на последовательной и bulk-записи задач, а на high-concurrency processing идёт примерно вровень.


https://bullmq.io/news/260712/rust-release

#RustLang #Redis #BullMQ #Tokio
🔥21👍6👏63
Topcoat: команда Tokio представила «Rails для Rust» 🦀

Topcoat - экспериментальный fullstack-фреймворк с готовой маршрутизацией, серверным рендерингом, компонентами и сборкой ассетов.

Главная идея — реактивность без отдельного JavaScript-кода и WASM. Вы пишете обычное типизированное Rust-выражение:


<button @click=$(|_e| open.set(!open.get()))>
"Что такое Topcoat?"
</button>


При первом рендере оно выполняется на сервере, а затем Topcoat переводит его в JavaScript, чтобы интерфейс мгновенно обновлялся в браузере.

Что уже есть:

- асинхронные серверные компоненты с прямым доступом к базе;
- view!`-шаблоны с обычными `if и for из Rust;
- маршруты, автоматически определяемые по структуре модулей;
- редактируемые UI-компоненты на Tailwind в духе shadcn/ui;
- встроенная сборка ассетов;
- интеграции с Tailwind и htmx;
- серверные функции и частичное обновление HTML.

Отдельный API-слой во многих сценариях не требуется: компонент может получить данные и сразу отрисовать страницу.

Проект пока находится на ранней экспериментальной стадии, поэтому возможны серьёзные изменения API. В планах — аутентификация, фоновые задачи, WebSocket, потоковый SSR и клиентская навигация.

https://github.com/tokio-rs/topcoat

#rust #rustlang #webdev #fullstack #tokio #opensource
👍4317🤯11😁2🥴2🗿2💊2🔥1
Cargo готовят к большой перестройке 🦀

Лид команды Cargo Ed Page опубликовал vision-документ о будущем главного инструмента Rust.

Самые интересные идеи:

- перевести Cargo на async/await и лучше распараллелить работу;
- добавить plumbing-команды в духе Git;
- перейти на PubGrub для более понятного разрешения зависимостей;
- улучшить provenance crates и доверие к пакетам;
- вынести использование unsafe в метаданные для аудита;
- усилить контроль над proc-macro и build scripts.

Отдельно затронуты AI-агенты: Cargo не хотят переделывать «под ИИ». Идея проще — ускорить сборки, улучшить сигналы и безопасность зависимостей, что одинаково полезно и людям, и агентам.

Это пока не roadmap, а приглашение сообщества обсудить будущее Cargo.

Источник:
https://epage.github.io/blog/2026/08/cargo-vision/

#Rust #Cargo #RustLang #DevTools
39🔥20🥰6👍2🥱2
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта

GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.

Что внутри:

- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.


from graphforge import GraphForge

graph = GraphForge("research/")

result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")

print(result.to_pandas())


При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.

Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.

https://github.com/CurateLabs/graphforge

#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
🔥7👍6🥱32😁1
Rust теперь проверяет сам себя тем же инструментом, которым разработчики ловят breaking changes в crates.io 🦀

В стандартную библиотеку Rust интегрировали cargo-semver-checks. На это ушли месяцы работы, десятки PR и больше 15 000 строк кода.

В 2020 году нестабильный метод добавили в стабильный trait и сломали async-std на nightly. В 2021-м новый метод BuildHasher нарушил dyn-safety. В 2022-м исправление soundness-проблемы у ChunksMut случайно убрало Send и Sync.

А в марте 2026 года изменение trait привело к тому, что тесты Tokio перестали собираться на Windows. Проблема оказалась достаточно серьёзной для выпуска Rust 1.94.1.

Автор cargo-semver-checks Предраг Груевски пишет, что сам ревьюил эти изменения и вряд ли смог бы заметить ошибки вручную. Их не заметили и более опытные разработчики std.

Самой сложной частью оказалась правильное разделение stable, unstable, const-unstable и default-unstable API, чтобы CI не ругался на нормальные изменения nightly.

Теперь cargo-semver-checks сможет автоматически ловить целый класс таких проблем ещё до того, как они попадут в стабильный Rust.

🔗 https://predr.ag/blog/protecting-the-rust-stdlib-from-breakage

#RustLang #OpenSource #DevTools
31🔥11👏4
Учебный проект на Rust дорос до Apache Top-Level Project 🦀

Apache Iggy 19 августа официально вышел из Apache Incubator и получил статус Top-Level Project.

История началась в марте 2023 года. Пётр Ганкевич хотел разобраться, как устроен message streaming изнутри, и заодно нормально выучить Rust.

Первоначальный план - сделать простой append-only log server примерно за три недели.

В итоге получилась полноценная streaming-платформа:

- Rust
- thread-per-core архитектура
- io_uring для дискового и сетевого I/O
- Viewstamped Replication для consensus
- P99 latency в единицах миллисекунд

За время в Apache Incubator проект вырос до:

- 4500+ GitHub stars
- 120+ contributors
- около 3000 pull requests
- 500K+ загрузок

Отдельно интересна история с open source. Команда передала исходный код Apache Software Foundation, чтобы будущее проекта не зависело от одного человека или одной компании.

Дальше в планах - clustering через VSR и Kafka protocol gateway, чтобы существующие приложения могли переходить на Iggy без большого переписывания.

Название Iggy, кстати, происходит от Italian Greyhound - маленькой, но очень быстрой породы собак.

https://iggy.apache.org/blogs/2026/08/24/apache-iggy-top-level-project-tlp-graduation

#RustLang #OpenSource #DataEngineering #Streaming

@rust_code
🔥19👍102🥰1👏1