Rust сократил расходы на CI примерно на 75% - и сознательно оставил лишние сборки компилятора.
В интервью Serokell Марко Иени из Rust Foundation объяснил компромисс.
Основную экономию дал переход с GitHub large runners на стандартные. По Enterprise-плану проекту доступны до 500 стандартных раннеров одновременно, а большие расходуют ограниченные спонсорские кредиты.
Часть тестов разделили между двумя стандартными раннерами. Каждый заново собирает компилятор — вычисления дублируются.
Можно собрать один раз и раздать артефакты. Но команда отказалась: такой обмен сделал бы CI медленнее и хрупче. Доступных раннеров хватает, поэтому простота оказалась ценнее экономии CPU.
Тот же принцип - в мониторинге: с собственного Prometheus и Grafana перешли на Datadog, поскольку старую систему никто не успевал обновлять.
Самый ограниченный ресурс здесь - время инженеров. Небольшая команда, во многом состоящая из волонтёров, не может оптимизировать каждый цент.
Хорошая инфраструктура укладывается в бюджет и остаётся посильной в сопровождении. Иногда ради этого стоит выполнять одну и ту же работу дважды.
https://serokell.io/blog/the-hidden-challenges-of-rust-infrastructure-interview-with-marco-ieni
В интервью Serokell Марко Иени из Rust Foundation объяснил компромисс.
Основную экономию дал переход с GitHub large runners на стандартные. По Enterprise-плану проекту доступны до 500 стандартных раннеров одновременно, а большие расходуют ограниченные спонсорские кредиты.
Часть тестов разделили между двумя стандартными раннерами. Каждый заново собирает компилятор — вычисления дублируются.
Можно собрать один раз и раздать артефакты. Но команда отказалась: такой обмен сделал бы CI медленнее и хрупче. Доступных раннеров хватает, поэтому простота оказалась ценнее экономии CPU.
Тот же принцип - в мониторинге: с собственного Prometheus и Grafana перешли на Datadog, поскольку старую систему никто не успевал обновлять.
Самый ограниченный ресурс здесь - время инженеров. Небольшая команда, во многом состоящая из волонтёров, не может оптимизировать каждый цент.
Хорошая инфраструктура укладывается в бюджет и остаётся посильной в сопровождении. Иногда ради этого стоит выполнять одну и ту же работу дважды.
https://serokell.io/blog/the-hidden-challenges-of-rust-infrastructure-interview-with-marco-ieni
❤12👍8🔥2
Rust выбирают для связи медицинских устройств: Vector заново разработала на нём стек IEEE 11073 SDC.
SDC позволяет приборам разных производителей обнаруживать друг друга, обмениваться измерениями, состояниями и тревожными сигналами. Это основа для совместной работы оборудования в операционных и реанимации.
Почему Rust? По объяснению Vector, безопасность памяти и типов помогает предотвращать распространённые ошибки ещё при разработке, снижая риск части сбоев и уязвимостей.
При этом переписывать всё приложение не требуется: стек подключается к существующему коду на C и C++ через FFI. Его можно встроить в устройство или использовать через шлюз.
Vector также заявляет рост производительности благодаря оптимизации обработки XML и структуры данных, описывающей состояние прибора. Конкретных результатов бенчмарков компания не привела.
Доступность ожидается в первом квартале 2027 года. О сертификации или регуляторном одобрении в анонсе не сообщается.
Заметный пример практического внедрения Rust: производитель инженерного ПО выбирает его для компонента, предназначенного работать внутри медицинского оборудования.
https://www.vector.com/en/company/press/press-releases/vector-announces-new-rust-based-ieee-11073-sdc-stack-for-the-medical-device-industry/
SDC позволяет приборам разных производителей обнаруживать друг друга, обмениваться измерениями, состояниями и тревожными сигналами. Это основа для совместной работы оборудования в операционных и реанимации.
Почему Rust? По объяснению Vector, безопасность памяти и типов помогает предотвращать распространённые ошибки ещё при разработке, снижая риск части сбоев и уязвимостей.
При этом переписывать всё приложение не требуется: стек подключается к существующему коду на C и C++ через FFI. Его можно встроить в устройство или использовать через шлюз.
Vector также заявляет рост производительности благодаря оптимизации обработки XML и структуры данных, описывающей состояние прибора. Конкретных результатов бенчмарков компания не привела.
Доступность ожидается в первом квартале 2027 года. О сертификации или регуляторном одобрении в анонсе не сообщается.
Заметный пример практического внедрения Rust: производитель инженерного ПО выбирает его для компонента, предназначенного работать внутри медицинского оборудования.
https://www.vector.com/en/company/press/press-releases/vector-announces-new-rust-based-ieee-11073-sdc-stack-for-the-medical-device-industry/
🔥30❤5👍3🐳1😨1🫡1💘1
Rust официально появился в systemd - с жёсткими ограничениями.
В основную ветку проекта приняли поддержку новых программ на Rust. Изменения готовятся для systemd 263.
Systemd отвечает за запуск системы и управление службами во многих Linux-дистрибутивах. Теперь часть новых утилит можно разрабатывать на Rust по следующим правилам:
- Только самостоятельные компоненты, от которых не зависят другие части systemd.
- Сборка через Meson, без Cargo.
- Режим `no_std` — без стандартной библиотеки Rust и произвольных сторонних зависимостей.
- Взаимодействие с существующим кодом — через C-интерфейсы.
Переписывать существующий C-код не планируют. Поддержка Rust опциональна: проект по-прежнему можно собрать без него.
Первый запланированный компонент — systemd-keyring-setup. Он будет загружать X.509-сертификаты в хранилища ключей ядра Linux при загрузке. Сама утилита пока находится в отдельном, ещё не принятом PR.
Rust постепенно входит в базовую инфраструктуру Linux: через новые компоненты с чёткими границами и общей системой сборки.
https://github.com/systemd/systemd/pull/44324
В основную ветку проекта приняли поддержку новых программ на Rust. Изменения готовятся для systemd 263.
Systemd отвечает за запуск системы и управление службами во многих Linux-дистрибутивах. Теперь часть новых утилит можно разрабатывать на Rust по следующим правилам:
- Только самостоятельные компоненты, от которых не зависят другие части systemd.
- Сборка через Meson, без Cargo.
- Режим `no_std` — без стандартной библиотеки Rust и произвольных сторонних зависимостей.
- Взаимодействие с существующим кодом — через C-интерфейсы.
Переписывать существующий C-код не планируют. Поддержка Rust опциональна: проект по-прежнему можно собрать без него.
Первый запланированный компонент — systemd-keyring-setup. Он будет загружать X.509-сертификаты в хранилища ключей ядра Linux при загрузке. Сама утилита пока находится в отдельном, ещё не принятом PR.
Rust постепенно входит в базовую инфраструктуру Linux: через новые компоненты с чёткими границами и общей системой сборки.
https://github.com/systemd/systemd/pull/44324
👍27🔥11❤4
BeautifulRust – бесплатный набор навыков, который помогает ИИ-агентам писать более качественный Rust.
Проект объединяет рекомендации Google, Microsoft, Rust API Guidelines, Effective Rust и Rust Design Patterns. Когда источники расходятся, автор выбирает подход и объясняет причину.
Внутри – навыки для написания и ревью кода, а также конфигурация Clippy для автоматических проверок.
Перед сдачей результата агенту предписано запускать форматирование, Clippy с предупреждениями как ошибками, тесты и сборку документации.
В авторской оценке на трёх задачах навык повысил результат с 24 до 29 пройденных проверок из 30, расходуя примерно на треть больше токенов. Выборка небольшая, но результат интересный.
Работает с Claude Code, Codex, Cursor и другими клиентами Agent Skills. Лицензия – MIT.
Установка:
https://github.com/morganlinton/BeautifulRust
Проект объединяет рекомендации Google, Microsoft, Rust API Guidelines, Effective Rust и Rust Design Patterns. Когда источники расходятся, автор выбирает подход и объясняет причину.
Внутри – навыки для написания и ревью кода, а также конфигурация Clippy для автоматических проверок.
Перед сдачей результата агенту предписано запускать форматирование, Clippy с предупреждениями как ошибками, тесты и сборку документации.
В авторской оценке на трёх задачах навык повысил результат с 24 до 29 пройденных проверок из 30, расходуя примерно на треть больше токенов. Выборка небольшая, но результат интересный.
Работает с Claude Code, Codex, Cursor и другими клиентами Agent Skills. Лицензия – MIT.
Установка:
npx skills add morganlinton/BeautifulRust
https://github.com/morganlinton/BeautifulRust
❤19👍12🔥6🥰3😍1🐳1🌚1
Уязвимости в Rust-библиотеках zip-rs и librsvg
В библиотеке zip-rs, написанной на языке Rust и насчитывающей около 10 млн загрузок в неделю, выявлена уязвимость (CVE-2026-115905), позволяющая создавать архивы, которые выглядят безобидными, но при распаковке из них извлекаются другие, изначально не показанные в списке, файлы. Файлы могут быть размещены в архиве вне структуры Central Directory, из-за чего при просмотре списка файлов показывается одно содержимое, но при распаковке через API ZipStreamReader извлекаются другие файлы. Проблеме присвоен уровень опасности 10 из 10. Уязвимость исправлена в версии zip-rs 9.0.5.
Полный текст:
https://opennet.ru/66555/
https://opennet.me/66555/
В библиотеке zip-rs, написанной на языке Rust и насчитывающей около 10 млн загрузок в неделю, выявлена уязвимость (CVE-2026-115905), позволяющая создавать архивы, которые выглядят безобидными, но при распаковке из них извлекаются другие, изначально не показанные в списке, файлы. Файлы могут быть размещены в архиве вне структуры Central Directory, из-за чего при просмотре списка файлов показывается одно содержимое, но при распаковке через API ZipStreamReader извлекаются другие файлы. Проблеме присвоен уровень опасности 10 из 10. Уязвимость исправлена в версии zip-rs 9.0.5.
Полный текст:
https://opennet.ru/66555/
https://opennet.me/66555/
🔥19❤5👍5
Основатель CentOS и Rocky Linux представил Linux-совместимое ядро Ginux, написанное на Rust
Грегори Курцер (Gregory Kurtzer), основатель дистрибутивов CentOS и Rocky Linux, представил проект Ginux, развивающий ядро операционной системы на языке Rust, нацеленное на достижение совместимости с ядром Linux. Опубликованный исследовательский прототип уже способен загрузить системное окружение дистрибутивов Alpine с BusyBox и Rocky Linux 10 с systemd в многопользовательском консольном режиме. Код проекта распространяется под лицензией Apache 2.0. Поддерживается работа на системах с архитектурой x86-64.
Полный текст:
https://opennet.ru/66562/
https://opennet.me/66562/
Грегори Курцер (Gregory Kurtzer), основатель дистрибутивов CentOS и Rocky Linux, представил проект Ginux, развивающий ядро операционной системы на языке Rust, нацеленное на достижение совместимости с ядром Linux. Опубликованный исследовательский прототип уже способен загрузить системное окружение дистрибутивов Alpine с BusyBox и Rocky Linux 10 с systemd в многопользовательском консольном режиме. Код проекта распространяется под лицензией Apache 2.0. Поддерживается работа на системах с архитектурой x86-64.
Полный текст:
https://opennet.ru/66562/
https://opennet.me/66562/
👍26❤11💅5😁3🤣3❤🔥2🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡ Minecraft переписывают на Rust: Horizon - альтернативный клиент с открытым кодом.
Проект воссоздаёт Minecraft: Java Edition 26.3: от генерации мира и физики до интерфейса, звука и сетевой игры. Доступен для Windows, Linux и Mac на Apple Silicon.
По заявлениям разработчиков, совместимость с оригиналом проверяется 281 набором сравнительных тестов. Клиент подключается к ванильным серверам, поддерживает сохранения и перенос совместимых модов из сборок Modrinth и CurseForge.
В сети распространяются демонстрации высокой производительности на слабых компьютерах. Однако обещать всем 60 FPS и мгновенную загрузку чанков нельзя: результат зависит от железа, настроек и конкретной сцены.
Как попробовать:
1. Установите свою лицензионную Minecraft: Java Edition через официальный лаунчер и один раз запустите версию 26.3.
2. Скачайте лаунчер Horizon и установите доступный релиз.
3. Подготовьте ресурсы из установленной копии игры и запускайте клиент.
Horizon – независимый проект, не связанный с Mojang и Microsoft. Код распространяется под MIT, файлы самой Minecraft в комплект не входят.
https://playhorizon.dev/
Проект воссоздаёт Minecraft: Java Edition 26.3: от генерации мира и физики до интерфейса, звука и сетевой игры. Доступен для Windows, Linux и Mac на Apple Silicon.
По заявлениям разработчиков, совместимость с оригиналом проверяется 281 набором сравнительных тестов. Клиент подключается к ванильным серверам, поддерживает сохранения и перенос совместимых модов из сборок Modrinth и CurseForge.
В сети распространяются демонстрации высокой производительности на слабых компьютерах. Однако обещать всем 60 FPS и мгновенную загрузку чанков нельзя: результат зависит от железа, настроек и конкретной сцены.
Как попробовать:
1. Установите свою лицензионную Minecraft: Java Edition через официальный лаунчер и один раз запустите версию 26.3.
2. Скачайте лаунчер Horizon и установите доступный релиз.
3. Подготовьте ресурсы из установленной копии игры и запускайте клиент.
Horizon – независимый проект, не связанный с Mojang и Microsoft. Код распространяется под MIT, файлы самой Minecraft в комплект не входят.
https://playhorizon.dev/
❤27👍19🤝1
Переписал GPU-вычисления на Rust и ускорил обработку в десятки раз. Но часть работы не окупилась
Провин Перера рассказал, как за три недели перевёл speakrs с ONNX Runtime на собственные GPU-ядра, написанные на Rust с помощью NVIDIA cuda-oxide.
Библиотека занимается диаризацией речи: определяет, кто и когда говорит в аудиозаписи.
По замерам автора на RTX 4090, после всех изменений:
- VoxConverse dev: 1236 → 38 секунд.
- Earnings-21: 2692 → 75 секунд.
- Ошибка диаризации, DER, осталась прежней.
Однако отказ от ONNX Runtime сам по себе дал ускорение в 1,81 раза. Остальной прирост нельзя приписывать одной замене рантайма.
А вот замена cuDNN и cuBLAS собственными ядрами, по оценке автора, преимущественно не оправдала усилий. Библиотеки NVIDIA оптимизированы под множество GPU, а свои реализации приходилось отдельно настраивать под A100, T4 и RTX 5090. H100 пока осталась без настройки.
Бонус полного отказа от этих библиотек - GPU-контейнер примерно на 2 ГБ меньше.
Большую часть ядер написали ИИ-агенты. Автор задавал цели, измерял результат и решал, что принимать. Пять дней ушли на сложную систему проверок, принёсшую один PR. После перехода к простой сквозной проверке за восемь часов удалось внедрить больше изменений.
Вывод автора: сначала измерьте пользу от замены компонента. Поддерживать собственную версию придётся тоже вам.
https://avencera.com/
Провин Перера рассказал, как за три недели перевёл speakrs с ONNX Runtime на собственные GPU-ядра, написанные на Rust с помощью NVIDIA cuda-oxide.
Библиотека занимается диаризацией речи: определяет, кто и когда говорит в аудиозаписи.
По замерам автора на RTX 4090, после всех изменений:
- VoxConverse dev: 1236 → 38 секунд.
- Earnings-21: 2692 → 75 секунд.
- Ошибка диаризации, DER, осталась прежней.
Однако отказ от ONNX Runtime сам по себе дал ускорение в 1,81 раза. Остальной прирост нельзя приписывать одной замене рантайма.
А вот замена cuDNN и cuBLAS собственными ядрами, по оценке автора, преимущественно не оправдала усилий. Библиотеки NVIDIA оптимизированы под множество GPU, а свои реализации приходилось отдельно настраивать под A100, T4 и RTX 5090. H100 пока осталась без настройки.
Бонус полного отказа от этих библиотек - GPU-контейнер примерно на 2 ГБ меньше.
Большую часть ядер написали ИИ-агенты. Автор задавал цели, измерял результат и решал, что принимать. Пять дней ушли на сложную систему проверок, принёсшую один PR. После перехода к простой сквозной проверке за восемь часов удалось внедрить больше изменений.
Вывод автора: сначала измерьте пользу от замены компонента. Поддерживать собственную версию придётся тоже вам.
https://avencera.com/
👍12❤5🔥5🤔3⚡1🥰1
Два месяца оптимизаций Rust-кода. А самое большое ускорение дало знание того, как устроен Linux.
Гийом Гомес, разработчик
Дальше началась оптимизация:
- Работа с байтами вместо строк - примерно на 20% меньше инструкций.
- Замена
-
- Повторное использование буферов - на 79% меньше выделенных байтов, но без ускорения.
Перелом случился после чтения исходников
Значит, обходить одну и ту же таблицу для каждого потока незачем. Если она общая, достаточно скопировать GPU-данные процесса.
В замерах автора время выполнения сократилось с 0,31 до 0,11 секунды - примерно на 64%, а число инструкций упало на 65%.
Есть нюанс: поток может отделить свою таблицу. Проверить, общая ли она, позволяет
Цифры получены на машине автора и зависят от нагрузки.
https://blog.guillaume-gomez.fr/
Гийом Гомес, разработчик
sysinfo, добавил сбор данных об использовании GPU отдельными процессами. Обновление информации резко замедлилось: приходилось обходить открытые файловые дескрипторы и искать подключения к видеокарте.Дальше началась оптимизация:
- Работа с байтами вместо строк - примерно на 20% меньше инструкций.
- Замена
Vec структурой в одном парсере - около 6%.-
fstatat вместо readlink - около 8%.- Повторное использование буферов - на 79% меньше выделенных байтов, но без ускорения.
Перелом случился после чтения исходников
htop: потоки обычно разделяют таблицу файловых дескрипторов своего процесса.Значит, обходить одну и ту же таблицу для каждого потока незачем. Если она общая, достаточно скопировать GPU-данные процесса.
В замерах автора время выполнения сократилось с 0,31 до 0,11 секунды - примерно на 64%, а число инструкций упало на 65%.
Есть нюанс: поток может отделить свою таблицу. Проверить, общая ли она, позволяет
kcmp.Цифры получены на машине автора и зависят от нагрузки.
https://blog.guillaume-gomez.fr/
🔥14❤12
Показываешь ИИ чужой сайт или приложение, а он разбирается, как всё работает, и собирает свою версию
На GitHub появился Craft Anything - open-source инструмент на Rust, объединяющий реверс-инжиниринг и AI-разработку.
Работает довольно интересно. Указываешь сайт, десктопное приложение или игру и описываешь, что хочешь воспроизвести.
Система исследует оригинал, передаёт результаты coding-агенту, собирает новый проект и сравнивает его с исходным. Если обнаруживает расхождения, запускает следующую итерацию исправлений.
Внутри целый движок реверс-инжиниринга с более чем 300 инструментами. Поддерживаются анализ бинарников, .NET, Java, Android, Electron, JavaScript и игровых файлов.
Есть два режима. Clean Room изучает только внешнее поведение и интерфейс, не читая исходники. Deep позволяет исследовать внутреннее устройство программы, включая дизассемблирование и декомпиляцию.
Все инструменты доступны через CLI и MCP. Для генерации кода используется прежде всего Claude Code.
Например, можно попросить агента воссоздать интерфейс сайта, а затем проверить результат на трёх размерах экрана.
Проект пока в ранней альфе: часть проверок и интеграций ещё экспериментальная.
Интересная идея для coding-агентов: вместо попытки угадать устройство программы по скриншоту сначала собрать реальные данные о её работе, а затем писать код.
https://github.com/storytold/craft-anything
На GitHub появился Craft Anything - open-source инструмент на Rust, объединяющий реверс-инжиниринг и AI-разработку.
Работает довольно интересно. Указываешь сайт, десктопное приложение или игру и описываешь, что хочешь воспроизвести.
Система исследует оригинал, передаёт результаты coding-агенту, собирает новый проект и сравнивает его с исходным. Если обнаруживает расхождения, запускает следующую итерацию исправлений.
Внутри целый движок реверс-инжиниринга с более чем 300 инструментами. Поддерживаются анализ бинарников, .NET, Java, Android, Electron, JavaScript и игровых файлов.
Есть два режима. Clean Room изучает только внешнее поведение и интерфейс, не читая исходники. Deep позволяет исследовать внутреннее устройство программы, включая дизассемблирование и декомпиляцию.
Все инструменты доступны через CLI и MCP. Для генерации кода используется прежде всего Claude Code.
Например, можно попросить агента воссоздать интерфейс сайта, а затем проверить результат на трёх размерах экрана.
Проект пока в ранней альфе: часть проверок и интеграций ещё экспериментальная.
Интересная идея для coding-агентов: вместо попытки угадать устройство программы по скриншоту сначала собрать реальные данные о её работе, а затем писать код.
https://github.com/storytold/craft-anything
🔥22🤔9🤬6👀4🖕3🥰1
Forwarded from Анализ данных (Data analysis)
Инженеры Google дали Gemini 4 Argon через Antigravity научную модель океана FVCOM. В исходном проекте было 174 тысячи строк Fortran и C, накопленных за десятилетия.
Агент самостоятельно изучил код, составил план миграции, переписал основные вычислительные модули на Rust, запустил тесты и оптимизировал производительность.
Результаты эксперимента:
- 59 минут на миграцию основного вычислительного ядра.
- Ускорение симуляции в 1,88 раза.
- Потребление памяти снизилось на 54%.
- Обнаружено 6 старых ошибок, включая переполнения и выходы за границы массивов.
- 96,8% покрытия ветвей тестами.
- Численные результаты совпали с оригиналом до 12 знаков после запятой на 100 тестовых сценариях.
В новом коде полностью запретили
unsafe. Для ускорения агент убрал лишние выделения памяти внутри циклов, переработал структуры данных и применил LLVM PGO.При первом запуске один тест упал из-за ошибки в расчётах для мелководья. Агент сам разобрал трассировку, исправил код и повторно прогнал тесты.
Google выложила использованный workflow в виде открытого skill для Antigravity. Запуск миграции выглядит так:
/migrate-to-rust <github-repo-url>https://antigravity.google/blog/modernizing-40-year-old-scientific-code-with-gemini-4-argon
@data_analysis_ml
#rust #Google #Argon
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43😁10👍6🥱6❤4🤔1🖕1
Discord переписывают на Rust. Electron отправляют на пенсию
Технический директор Discord Станислав Вишневский подтвердил, что компания разрабатывает новый клиент на Rust, полностью отказываясь от Electron на десктопе и React Native на мобильных устройствах.
Вместо Electron разработчики используют GPUI, нативный UI-фреймворк на Rust с GPU-ускорением. Мобильные приложения сохранят нативный интерфейс, но будут использовать общую с десктопом логику на Rust.
Тестовый клиент Discord Phoenix потребляет всего 290,2 МБ оперативной памяти. Для сравнения, нынешний Discord у некоторых пользователей занимает 1-2 ГБ и больше. Правда, полноценного сравнительного тестирования пока нет.
Discord использует Rust ещё с 2018 года: на нём уже работают части инфраструктуры, голосовые технологии и отдельные компоненты клиента.
Новая версия должна сохранить привычный интерфейс, но стать быстрее и экономнее по памяти. Пользовательское тестирование планируют начать скоро, точной даты релиза пока нет.
Источник: https://x.com/svishnevskiy/status/2118081920194203799
Технический директор Discord Станислав Вишневский подтвердил, что компания разрабатывает новый клиент на Rust, полностью отказываясь от Electron на десктопе и React Native на мобильных устройствах.
Вместо Electron разработчики используют GPUI, нативный UI-фреймворк на Rust с GPU-ускорением. Мобильные приложения сохранят нативный интерфейс, но будут использовать общую с десктопом логику на Rust.
Тестовый клиент Discord Phoenix потребляет всего 290,2 МБ оперативной памяти. Для сравнения, нынешний Discord у некоторых пользователей занимает 1-2 ГБ и больше. Правда, полноценного сравнительного тестирования пока нет.
Discord использует Rust ещё с 2018 года: на нём уже работают части инфраструктуры, голосовые технологии и отдельные компоненты клиента.
Новая версия должна сохранить привычный интерфейс, но стать быстрее и экономнее по памяти. Пользовательское тестирование планируют начать скоро, точной даты релиза пока нет.
Источник: https://x.com/svishnevskiy/status/2118081920194203799
🔥50❤13👍5
Rust, который наконец становится понятным 🦀
Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отдельный вид боли?
Этот курс проведёт тебя с самого начала до уровня, где ты уже пишешь реальные системные и сетевые программы.
Ты разберёшь:
Ownership → Borrowing → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код
Никакого бесконечного чтения документации. После каждого урока ты сразу пишешь код, проходишь тесты и решаешь задачу с автопроверкой.
🔥 Rust с нуля
🔥 5–6 часов в неделю
🔥 Практика после каждого урока
🔥 Подойдёт после Python, JavaScript, Java и других языков
🔥 Можно начать сразу
В конце у тебя будет понимание Rust, с которым уже можно писать быстрые backend-сервисы, сетевые приложения и системные утилиты, а не смотреть на borrow checker как на врага.
Пора добавить Rust в свой стек. Начинай курс и пиши первый код уже сегодня: https://stepik.org/a/294885/
Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отдельный вид боли?
Этот курс проведёт тебя с самого начала до уровня, где ты уже пишешь реальные системные и сетевые программы.
Ты разберёшь:
Ownership → Borrowing → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код
Никакого бесконечного чтения документации. После каждого урока ты сразу пишешь код, проходишь тесты и решаешь задачу с автопроверкой.
🔥 Rust с нуля
🔥 5–6 часов в неделю
🔥 Практика после каждого урока
🔥 Подойдёт после Python, JavaScript, Java и других языков
🔥 Можно начать сразу
В конце у тебя будет понимание Rust, с которым уже можно писать быстрые backend-сервисы, сетевые приложения и системные утилиты, а не смотреть на borrow checker как на врага.
Пора добавить Rust в свой стек. Начинай курс и пиши первый код уже сегодня: https://stepik.org/a/294885/
🗿12❤5👍1🥰1
Rust
Discord переписывают на Rust. Electron отправляют на пенсию Технический директор Discord Станислав Вишневский подтвердил, что компания разрабатывает новый клиент на Rust, полностью отказываясь от Electron на десктопе и React Native на мобильных устройствах.…
This media is not supported in your browser
VIEW IN TELEGRAM
Новое мобильное приложение Discord!
Слева: приложение на Electron.
Справа: Rust + GPUI.
По ощущениям, интерфейс реагирует мгновенно.
Слева: приложение на Electron.
Справа: Rust + GPUI.
По ощущениям, интерфейс реагирует мгновенно.
🔥61👍7❤5🤯4
Задача на Rust с подвохом: палиндром после одного удаления
Дана строка
При этом строка может содержать Unicode, а удалять разрешается именно один
Условия:
Строка может быть уже палиндромом, но удалить один символ всё равно обязательно.
Использовать
Желательная сложность решения: O(n) по времени.
Подвох в том, что обычная проверка палиндрома двумя указателями здесь недостаточна. Нужно правильно обработать первое несовпадение и случай, когда исходная строка уже симметрична.
Как бы вы решили эту задачу на Rust без перебора всех возможных удалений?
Дана строка
s. Нужно определить, можно ли удалить ровно один символ, чтобы оставшаяся строка стала палиндромом.При этом строка может содержать Unicode, а удалять разрешается именно один
char, а не один байт.
fn can_be_palindrome_after_one_deletion(s: &str) -> bool {
// Ваш код
}
fn main() {
assert!(can_be_palindrome_after_one_deletion("racecar"));
assert!(can_be_palindrome_after_one_deletion("абвба"));
assert!(can_be_palindrome_after_one_deletion("abca"));
assert!(!can_be_palindrome_after_one_deletion("abcdef"));
}
Условия:
Строка может быть уже палиндромом, но удалить один символ всё равно обязательно.
Использовать
s.as_bytes() для сравнения символов нельзя, поскольку один Unicode-символ может занимать несколько байт.Желательная сложность решения: O(n) по времени.
Подвох в том, что обычная проверка палиндрома двумя указателями здесь недостаточна. Нужно правильно обработать первое несовпадение и случай, когда исходная строка уже симметрична.
Как бы вы решили эту задачу на Rust без перебора всех возможных удалений?
❤1