🦀 Вышел Rust 1.94.0
В новом релизе появилось небольшое, но очень полезное изменение для разработчиков CLI-утилит.
Теперь переменная CARGO_BIN_EXE_<name> доступна не только во время сборки, но и во время выполнения программы.
Это позволяет напрямую получать путь к скомпилированному бинарнику и использовать его в тестах. Раньше для этого приходилось писать обходные решения или вручную искать путь к файлу.
Теперь Cargo сам предоставляет путь к бинарному файлу, что сильно упрощает интеграционное тестирование CLI-приложений.
Полный список изменений доступен в changelog релиза Rust 1.94.0.
https://github.com/rust-lang/rust/releases/tag/1.94.0
#rustlang #rust #cargo #release #testing #opensource
В новом релизе появилось небольшое, но очень полезное изменение для разработчиков CLI-утилит.
Теперь переменная CARGO_BIN_EXE_<name> доступна не только во время сборки, но и во время выполнения программы.
Это позволяет напрямую получать путь к скомпилированному бинарнику и использовать его в тестах. Раньше для этого приходилось писать обходные решения или вручную искать путь к файлу.
Теперь Cargo сам предоставляет путь к бинарному файлу, что сильно упрощает интеграционное тестирование CLI-приложений.
Полный список изменений доступен в changelog релиза Rust 1.94.0.
https://github.com/rust-lang/rust/releases/tag/1.94.0
#rustlang #rust #cargo #release #testing #opensource
👍32🔥17🎉7❤4😁2⚡1🥰1🤗1
Rust-приложение, которое превращает скучный терминал в живой dashboard
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
Под капотом Rust и
Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
dashboard.toml. Заходишь в папку проекта через cd - и терминал сразу подхватывает нужный контекст без флагов, ручной настройки и лишней возни.Под капотом Rust и
ratatui, работает кроссплатформенно, пакет доступен на crates.io.Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
👍30❤10🥰4🥴4😁2🤗1
Обычно есть два подхода.
Первый - собрать всё дерево документа целиком. Так делают Wadler-style pretty printers. Это выразительно, но в Rust быстро упирается в память, аллокации и указатели.
Второй - стримить вывод по кускам. Так работает Oppen-style подход. Он легче по памяти, но часто принимает локально хорошие решения и не всегда находит глобально лучший layout.
Автор предлагает третий вариант: не хранить документ как рекурсивный enum, а описывать его через trait
Doc.То есть
Text, Concat, Group, Nest и другие элементы становятся отдельными типами, которые умеют сами себя рендерить через layout().Звучит как мелкая архитектурная правка, но эффект большой: меньше лишних аллокаций, меньше прыжков по памяти, гибче управление
Box, Rc и другими стратегиями хранения.В proof-of-concept реализации pye автор получил до 60x ускорения по сравнению с прямой Rust-реализацией алгоритма из paper “A Pretty Expressive Printer”. А в обновлённых тестах вариант с таким дизайном и greedy-алгоритмом местами обгонял
pretty и arena-версию больше чем в 10 раз.В Rust производительность часто ломается не только на алгоритме, но и на форме данных.
Иногда enum выглядит красиво, но trait-based дизайн лучше ложится на память, ownership и реальные оптимизации компилятора.
blog.wybxc.cc/blog/pretty-printer-pye/
#Rust #RustLang #Compilers #OpenSource #SystemsProgramming
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍11❤6❤🔥3🥰1👌1
Скотт Чакон, сооснователь GitHub, переписал Git на Rust. С помощью ИИ-агентов.
Проект называется Grit. Это новая реализация Git с нуля: library-first, memory-safe и почти полностью на безопасном Rust. Она уже проходит 99,3% собственного тестового набора Git — 41 715 из 42 001 теста.
Цифры:
* 360 000+ строк Rust
* 7 000+ коммитов
* 500+ pull request’ов
* около 45 млрд токенов через Claude, Cursor и Codex
* примерно $10–15 тыс. затрат на ИИ
Что интересного:
* library-first дизайн, без постоянного fork/exec для каждой Git-операции
* reentrant, linkable, modular архитектура: Git можно напрямую встраивать в GitButler, Jujutsu, Zed и другие инструменты
* потенциальная WASM-сборка: Git-команды можно запускать в edge functions
* лицензия MIT вместо GPL
* почти полностью safe Rust: только один FFI-модуль для date/time
Отдельно интересен сам разбор разработки.
Это честный взгляд на agentic coding в большом масштабе: агенты, которые «читерят» в тестах, тихо ломают код, создают проблемы с координацией и превращают Cursor в режим бесконечного гринда.
Стоит прочитать:
http://blog.gitbutler.com/true-grit
#Rust #RustLang #Git #OpenSource #AIAgents #SystemsProgramming #DevTools
Проект называется Grit. Это новая реализация Git с нуля: library-first, memory-safe и почти полностью на безопасном Rust. Она уже проходит 99,3% собственного тестового набора Git — 41 715 из 42 001 теста.
Цифры:
* 360 000+ строк Rust
* 7 000+ коммитов
* 500+ pull request’ов
* около 45 млрд токенов через Claude, Cursor и Codex
* примерно $10–15 тыс. затрат на ИИ
Что интересного:
* library-first дизайн, без постоянного fork/exec для каждой Git-операции
* reentrant, linkable, modular архитектура: Git можно напрямую встраивать в GitButler, Jujutsu, Zed и другие инструменты
* потенциальная WASM-сборка: Git-команды можно запускать в edge functions
* лицензия MIT вместо GPL
* почти полностью safe Rust: только один FFI-модуль для date/time
Отдельно интересен сам разбор разработки.
Это честный взгляд на agentic coding в большом масштабе: агенты, которые «читерят» в тестах, тихо ломают код, создают проблемы с координацией и превращают Cursor в режим бесконечного гринда.
Стоит прочитать:
http://blog.gitbutler.com/true-grit
#Rust #RustLang #Git #OpenSource #AIAgents #SystemsProgramming #DevTools
🔥41❤11👍11🤣5🤔4💊4🥰1👏1🤗1
Topcoat: команда Tokio представила «Rails для Rust» 🦀
Topcoat - экспериментальный fullstack-фреймворк с готовой маршрутизацией, серверным рендерингом, компонентами и сборкой ассетов.
Главная идея — реактивность без отдельного JavaScript-кода и WASM. Вы пишете обычное типизированное Rust-выражение:
При первом рендере оно выполняется на сервере, а затем Topcoat переводит его в JavaScript, чтобы интерфейс мгновенно обновлялся в браузере.
Что уже есть:
- асинхронные серверные компоненты с прямым доступом к базе;
-
- маршруты, автоматически определяемые по структуре модулей;
- редактируемые UI-компоненты на Tailwind в духе shadcn/ui;
- встроенная сборка ассетов;
- интеграции с Tailwind и htmx;
- серверные функции и частичное обновление HTML.
Отдельный API-слой во многих сценариях не требуется: компонент может получить данные и сразу отрисовать страницу.
Проект пока находится на ранней экспериментальной стадии, поэтому возможны серьёзные изменения API. В планах — аутентификация, фоновые задачи, WebSocket, потоковый SSR и клиентская навигация.
https://github.com/tokio-rs/topcoat
#rust #rustlang #webdev #fullstack #tokio #opensource
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
👍43❤17🤯11😁2🥴2🗿2💊2🔥1
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта
GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.
Что внутри:
- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.
При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.
Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.
https://github.com/CurateLabs/graphforge
#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
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🥱3❤2😁1
📡 MQTT прямо в терминале - и без боли.
LazyMQTT - TUI-клиент для просмотра, анализа и публикации MQTT-сообщений.
Что умеет:
- показывает live-дерево топиков;
- хранит историю сообщений;
- умеет удобно отображать JSON, XML и Protobuf;
- поддерживает алерты;
- показывает аналитику трафика;
- позволяет публиковать сообщения прямо из терминала.
Проект написан на Rust и построен на Ratatui.
Для IoT-разработчиков, embedded-инженеров и всех, кто работает с MQTT-брокерами, выглядит как очень удобная альтернатива тяжёлым GUI-клиентам.
GitHub:
https://github.com/ScottFelder/lazymqtt
#Rust #MQTT #IoT #TUI #Terminal #OpenSource
LazyMQTT - TUI-клиент для просмотра, анализа и публикации MQTT-сообщений.
Что умеет:
- показывает live-дерево топиков;
- хранит историю сообщений;
- умеет удобно отображать JSON, XML и Protobuf;
- поддерживает алерты;
- показывает аналитику трафика;
- позволяет публиковать сообщения прямо из терминала.
Проект написан на Rust и построен на Ratatui.
Для IoT-разработчиков, embedded-инженеров и всех, кто работает с MQTT-брокерами, выглядит как очень удобная альтернатива тяжёлым GUI-клиентам.
GitHub:
https://github.com/ScottFelder/lazymqtt
#Rust #MQTT #IoT #TUI #Terminal #OpenSource
❤14👍3
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.
🔗 http://predr.ag/blog/protecting-the-rust-stdlib-from-breakage
#RustLang #OpenSource #DevTools
В стандартную библиотеку 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.
🔗 http://predr.ag/blog/protecting-the-rust-stdlib-from-breakage
#RustLang #OpenSource #DevTools
❤31🔥11👏4
🦀 Один TUI, чтобы управлять всем локальным web-стеком.
Reeve - менеджер localhost-окружения для разработки, который собирает привычные dev-инструменты в одном терминальном интерфейсе.
Что умеет:
- переключать версии PHP;
- управлять Caddy, Apache и nginx;
- работать с базами данных;
- настраивать локальный SSL и DNS;
- управлять parked sites;
- смотреть live traffic;
- держать весь локальный стек под рукой без десятка отдельных команд.
Проект написан на Rust и использует Ratatui для интерфейса.
Для тех, кто устал вручную переключаться между nginx, PHP, базой, hosts и сертификатами — выглядит очень удобно.
GitHub:
https://github.com/yetidevworks/reeve
#Rust #DevTools #TUI #WebDevelopment #OpenSource
Reeve - менеджер localhost-окружения для разработки, который собирает привычные dev-инструменты в одном терминальном интерфейсе.
Что умеет:
- переключать версии PHP;
- управлять Caddy, Apache и nginx;
- работать с базами данных;
- настраивать локальный SSL и DNS;
- управлять parked sites;
- смотреть live traffic;
- держать весь локальный стек под рукой без десятка отдельных команд.
Проект написан на Rust и использует Ratatui для интерфейса.
Для тех, кто устал вручную переключаться между nginx, PHP, базой, hosts и сертификатами — выглядит очень удобно.
GitHub:
https://github.com/yetidevworks/reeve
#Rust #DevTools #TUI #WebDevelopment #OpenSource
🔥19❤4🥰3😁1
Учебный проект на 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 архитектура
-
- 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
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👍10❤2🥰1👏1