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❤3🥰1👏1