Rust
8.86K subscribers
524 photos
45 videos
3 files
1.06K links
Rust programming language

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

#VRHSZ
Download Telegram
🦀 Вышел 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
👍32🔥17🎉74😁21🥰1🤗1
Rust-приложение, которое превращает скучный терминал в живой dashboard

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
👍3010🥰4🥴4😁2🤗1
👣 В Rust нашли интересный способ ускорить pretty printer - штуку, которая красиво форматирует код, JSON, Lisp и другие структуры.

Обычно есть два подхода.

Первый - собрать всё дерево документа целиком. Так делают 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👍116❤‍🔥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
🔥4111👍11🤣5🤔4💊4🥰1👏1🤗1
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
🚀 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
📡 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
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
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
🔥194🥰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 архитектура
- 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