8 510
Subscribers
-124 hours
+67 days
+4430 days
Posts Archive
8 509
Трёхлетний 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 #Gleam8 509
PostgreSQL переписали на Rust с нуля. И это уже не игрушечный прототип.
Проект pgrust заявляет, что новая реализация:
• проходит 46 066 запросов из regression-тестов PostgreSQL 18.3
• совместима с текущей директорией данных Postgres
• запускается в браузере как демо
Авторы говорят о WIP-версии, которая пока не опубликована, но якобы даёт до +50% в transactional workloads и до 300x в аналитике.
Звучит почти слишком смело, поэтому к цифрам лучше относиться осторожно. Но сама идея мощная: взять одну из самых сложных СУБД в мире и пересобрать её на Rust, сохранив совместимость с PostgreSQL.
GitHub: https://github.com/malisper/pgrust
8 509
🚀 Rift: Альтернатива Git Worktrees
Rift предлагает эффективное управление рабочими пространствами с использованием технологий копирования по требованию. Это экспериментальный проект, который обеспечивает быструю и экономичную работу с файлами на Linux и macOS.
🚀 Основные моменты:
- Копирование по требованию для экономии места
- Мгновенное создание рабочих пространств
- Быстрый CLI для управления
- Поддержка FFI для Bun и Node
📌 GitHub: https://github.com/anomalyco/rift
8 509
Borrowed & Owned
Новый open-source каталог для изучения Rust.
Внутри собраны книги, видео, курсы, репозитории, блоги и другие материалы по Rust.
Что есть:
• поиск и фильтры
• learning paths
• категории и теги
• страницы отдельных ресурсов
• starter kits для быстрого старта
• changelog новых материалов
• dark / light theme
• добавление ресурсов через GitHub
По сути, аккуратная база знаний для тех, кто учит Rust и не хочет тонуть в случайных ссылках.
https://github.com/panditdhamdhere/borrowed_and_owned
8 509
Amazon Kani для Rust получил академическую статью, принятую на ASE 2026. 🦀
Kani пытается формально доказать корректность Rust-кода математически.
Что умеет:
* доказывать отсутствие panic, overflow и нарушений memory safety
* проверять, что `unsafe`-код действительно безопасен
* гонять 16 000+ harness’ов на каждый commit в Rust standard library
* находить баги, которые раньше не видели в промышленных Rust-проектах
Главное отличие простое:
fuzzing пытается найти баги через множество входных данных.
Kani проверяет свойства кода формально, в рамках заданного harness’а.
Kani интегрирован в CI стандартной библиотеки Rust.
Каждый commit в
std проходит формальную проверку.
🔗 arxiv.org/abs/2607.015048 509
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
8 509
👣 Rust не обязан быть ответом на всё
Rust классный. У него сильная модель памяти, мощная типизация, zero-cost abstractions и нормальная история с безопасностью без GC.
Но мем «переписать всё на Rust» давно пора закопать.
Язык не выбирают потому, что он модный. Его выбирают потому, что он подходит под задачу.
Для системного кода, инфраструктуры, embedded, CLI, высоконагруженных сервисов и мест, где цена ошибки высокая, Rust может быть отличным выбором.
Но для простого CRUD, быстрых MVP, внутренних админок или команды без Rust-экспертизы он легко превращается не в преимущество, а в налог на разработку.
Хороший инженер не спрашивает: «на чём хайповее написать?»
Он спрашивает:
• какие ограничения у задачи
• какая команда будет это поддерживать
• насколько важны производительность и безопасность памяти
• сколько стоит скорость разработки
• что проще дебажить и развивать через год
Rust - мощный инструмент. Но инструмент, а не религия.
8 509
Частая дилемма в Rust: Tokio отлично подходит для async I/O, Rayon для тяжёлых CPU-задач. Но как связать их так, чтобы не заблокировать async runtime? 🦀
Команда Tantivy, поискового движка на Rust, показала, как решила это в продакшене.
Проблема:
Tokio-задачи не должны блокироваться. Тяжёлая CPU-работа может подвесить весь async runtime.
Rayon-потоки не понимают async. Внутри rayon thread нельзя просто взять и сделать
.await.
Передать результат обратно между этими мирами тоже не так очевидно.
Решение - мост через `oneshot`-канал.
Tokio запускает задачу и ждёт результат из oneshot.
Rayon выполняет CPU-работу в своём пуле потоков.
Когда работа завершена, Rayon отправляет результат обратно через канал.
Tokio продолжает выполнение, при этом executor всё это время не блокировался.
Очень полезный паттерн для всех, кто пишет async-код на Rust.
🔗 reddit.com/r/rust/comments/1ulo7pr8 509
Вышел Rust 1.96.1
Что исправили:
• проблемы с retry и timeout в HTTP-клиенте Cargo
• miscompilation в MIR-оптимизации
• три CVE в libssh2, который используется внутри Cargo
Обновление стандартное:
rustup update stable
Патч на стабильность и улучшение безопасности.
rustup update stable
https://blog.rust-lang.org/2026/06/30/Rust-1.96.1/
8 509
Rust сегодня:
47 веб-фреймворков, 12 async runtime, 8 ORM, 6 logging crates и отдельный crate, который просто сообщает, что ты используешь не тот crate.
8 509
Предрелизное тестирование 1.96.1
#rustlang #rust
https://blog.rust-lang.org/inside-rust/2026/06/27/1.96.1-prerelease/
8 509
⚡️ Интересный бенчмарк для C# и Windows-разработчиков.
Microsoft/windows-rs сравнил overhead WinRT language projections: Rust, C++ и C# вызывают один и тот же компонент через одинаковый ABI.
Результат неприятный для C#:
Rust почти везде впереди.
C++ рядом.
C# заметно отстаёт на interop-вызовах.
Особенно больно на сценариях с активацией объектов, marshaling, QueryInterface и обработкой ошибок.
Native AOT тоже не спасает: он может улучшать startup, но не превращает C# в zero-overhead projection для таких вызовов.
Главный вопрос: если Windows и приложения всё активнее пишутся на C#, сколько производительности остаётся на столе именно из-за interop-слоя?
Repo:
https://github.com/microsoft/windows-rs/blob/master/crates%2Fsamples%2Flang_perf%2Freadme.md
8 509
⚡️ Linux Roadmap: подробный практический курс от нуля до уверенного администратора
Это пошаговый маршрут изучения Linux с упором на практику. Каждый раздел содержит объяснение «почему это устроено именно так», разбор команд и обязательные задания, которые нужно выполнить руками в терминале. Чтение без повторения навыка не даёт — держите терминал открытым рядом с этим текстом.
Как работать с этим курсом: идите сверху вниз, не перепрыгивайте разделы; каждую команду набирайте руками, а не копируйте; в конце каждого блока выполняйте задание; специально ломайте систему в виртуалке и чините — это лучший способ учиться.
https://github.com/justxor/linuxfullroadmap/
8 509
Магия Lovable: как создавать готовые интерфейсы с помощью одного запроса
Lovable может за минуты собрать экран, который выглядит как почти готовый интерфейс. Но результат зависит не от «магии нейросети», а от того, насколько точно вы ставите задачу. Один расплывчатый запрос даст случайный макет, а правильно собранный системный промпт — понятную структуру, единый стиль и экран, который уже можно показывать команде, заказчику или использовать для проверки идеи.
На открытом уроке 2 июля в 20:00 разберём, как формулировать задачи для Lovable. Поговорим о структуре системного промпта, ключевых словах, которые помогают превратить текст в качественный интерфейс, и способах доработки результата через встроенный редактор и повторные запросы. Отдельно обсудим, как управлять компонентами, просить нейросеть переиспользовать элементы и сохранять единый визуальный стиль.
👉 Записаться: https://otus.pw/kXbJ/?erid=2W5zFG3YcyF
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
8 509
Песочницы для агентов не должны каждый раз стартовать с нуля, когда агент создаёт новую ветку.
forkd — это runtime для sandbox-окружений AI-агентов на базе Firecracker microVM.
Он помогает быстрее ветвить и распараллеливать задачи: сначала один раз запускается «прогретый» родительский microVM, а затем дочерние окружения создаются из copy-on-write снапшотов памяти вместо холодного запуска каждой VM.
Ключевые возможности:
- Forking от прогретого родителя — дочерние окружения наследуют уже загруженные импорты, зависимости, JIT-состояние, веса моделей и кэши
- KVM-изолированные microVM — каждый дочерний sandbox работает как отдельный процесс Firecracker с собственной изоляцией
- Live BRANCH — можно поставить работающий sandbox на паузу, снять снапшот состояния «на лету» и продолжить выполнение. Для v0.4 заявлено p50-окно паузы исходного окружения 56 мс
- Цепочки diff-снапшотов — можно накладывать runtime-слои вроде numpy → pandas → sklearn без повторного копирования одного и того же базового образа
- Удобная daemon-поверхность — REST API, Python/TypeScript/MCP-клиенты, метрики Prometheus, JSON audit log и поддержка systemd
Проект open-source и распространяется под лицензией Apache License 2.0.
Ссылка в ответе 👇
https://github.com/deeplethe/forkd
8 509
Когда баз много, администрирование превращается в ручное управление хаосом: серверы, кластеры, бэкапы, мониторинг и диагностика.
🐘 Postgres Professional на бесплатном вебинаре покажет, как управлять множеством баз через единый веб-интерфейс Postgres Pro Enterprise Manager.
📊 Это графическая платформа для DBA, DevOps, архитекторов и технических лидеров. Она входит во все редакции Postgres Pro и решает задачи администрирования без ручного написания SQL-команд.
На вебинаре покажут, как с помощью PPEM:
✅ Мониторить инфраструктуру
✅ Управлять экземплярами БД
✅ Работать с бэкапами
✅ Искать проблемы и ускорять диагностику
🤖 Отдельно покажут ИИ-ассистента в новой версии платформы: он обращается к документации и помогает быстрее решать типовые задачи.
📅 30 июня, вторник, 11:00 по Москве, продолжительность — 2 часа с Q&A.
Регистрируйтесь и приходите посмотреть PPEM в деле. Участие бесплатное.
8 509
👣 В Rust появился интересный подход к обработке ошибок - `eros`.
Обычно выбор такой:
anyhow — удобно, но теряется точная типизация ошибок.
thiserror — типобезопасно, но приходится писать enum и boilerplate.
eros пытается взять лучшее из обоих миров: typed error unions без ручного объявления enum.
Пример:
fn read() -> Result<String, ErrorUnion<(IoError, RecvError)>> {
// ...
}
Что это даёт:
• сохраняется полная информация о типах ошибок
• ошибки естественно композятся при вызове функций
• не нужно писать отдельные enum под каждый слой
• можно добавлять context по цепочке вызовов
• есть backtraces и интеграция с логированием
• zero-cost, когда ошибки не происходит
По сути, это попытка сделать error handling в Rust более удобным, не жертвуя строгой типизацией.
212 звёзд, свежий релиз v0.6.0, проект активно поддерживается.
GitHub:
http://github.com/mcmah309/eros