Новости
Робоутка
Microduck от Pollen Robotics - это открытый репозиторий "мозга" крошечного двуногого робота-утенка, который ходит, катается на колесах, ходит, поднимает предметы, встает после падения и крякает, используя обучение с подкреплением. Все работает на одноплатном к...
Реверс самоката
Автор занимается реверс-инжинирингом своего электросамоката. Через Bluetooth-приложение и осциллограф он обнаруживает скрытую шину CAN на разъеме USB-C дисплея, снимает ее трафик с помощью самодельного логгера на ESP32 и расшифровывает сообщения, управляющи...
Оптимизация DNS-кэша
Ребята из Cloudflare рассказывают, как пять последовательных оптимизаций раскладки DNS-кэша Big Pineapple сократили потребление памяти на запись на 56% - с 953 до 420 байт. Освободили около 100 терабайт ОЗУ по всем машинам, а также ускорили кэш. Они сдела...
Профилирование Rust
В статье про hotpath-rs - универсальный профайлер производительности для Rust. Автор показывает, как находить и устранять реальные узкие места на разных уровнях приложения: SQL-запросов, HTTP-вызовов и I/O до блокировок, каналов, аллокаций памяти и сэмплир...
На Rust после Go
Автор, пять лет писавший на Go, сначала скептически отнесся к появлению Rust в его команде. Но появился проект, в котором нужны были низкое потребление памяти и mpmc-обмен сообщениями. Пожтому несколько CLI и сервисов решили переписать на Rust и это застав...
Вкуc zig после Rust
Автор, семь лет писавший на Rust, переписал свой проект jsonpath-rust на Zig и делится впечатлениями от перехода. Больше всего его удивило почти полное отсутствие IDE-поддержки в Zig, что заставило вернуться к CLI и build.zig и даже подтолкнуло к переходу ...
Конкурентный сервер на Rust
Седьмая часть серии о конкурентных сетевых серверах. Тут автор рассматривает, как в Rust решаются те же задачи, что и в предыдущих частях на C, Python и JavaScript. Автор последовательно показывает реализации сервера с простым протоколом. Сначала последова...
Сервисы на Rust
Автор объясняет, почему Rust - отличный выбор для средних по размеру backend-сервисов, несмотря на меньшую "продуктивность" по сравнению с Go. В Rust богатая система типов, проверки компилятора и zero-cost-абстракции избавляют от багов бизнес-логики. В ст...
Мигаем диодом на Rust
Автор показывает использование Embedded Rust - от подключения программатора ST-LINK V2 через SWD-интерфейс до сборки и прошивки. Все это на STM32 Автор использует готовый шаблон проекта на базе крейта stm32f1xx-hal, разбирает ключевые атрибуты, а затем прям...
esp32 http2 сервер
Вот у людей времени дофига. Автор демонстрирует, как он запускает HTTP/2-сервера с TLS 1.3 на микроконтроллере ESP32-WROVER-E. Сервер написан на Rust с помощью собственного крейта WTX, Embassy и официальных ESP-крейтов. Сервер слушает порт 9000, выполняет п...
Самодельные арены в Rust
В статье автор рассказывает про реализацию арен в Rust с нуля. Получилось такое себе пошаговое руководство от простейшей обертки над Vec до продвинутой версии с сырыми буферами, UnsafeCell и поддержкой динамических типов через nightly-фичу allocator_api. Ав...
А теперь переписываем на Zig
Окей, Bun переписывают с Zig на Rust. Но вы что думаете, только на Rust всё переписывают? Нифига! Команда языка Roc за полтора года переписала свой 300 000-строчный компилятор с Rust на Zig и реализовала почти весь функционал оригинала. Основной причиной...
Свой 3d редактор
Это первый эпизод серии туториалов по созданию простого 3D-редактора сцен на движке Bevy 0.19. Проект вдохновлен Blender. Теоретически, его можно будет использовать для разработки игровых миров, где редактор и игра используют одну и ту же ECS-архитектуру. ...
Сокращатель ссылок на rust
Это вводная статья серии по бэкенд-разработке на Rust и Axum. Автор на примере создания сокращателя URL разбирается веб-фреймворк Axum и объясняется как он устроен. По сути, Axum это надстройка поверх Hyper, Tower и асинхронной среды Tokio. Автор раскр...
Миллиард строк
Автор проходит One Billion Row Challenge на Rust - задачу по обработке файла с миллиардом строк метеоданных за минимальное время. В 10-часовом стриме он итеративно оптимизирует решение: от наивной версии через отказ от парсинга UTF-8 и мапинга файла в память ...
6 связанных списков
"Learning Rust With Entirely Too Many Linked Lists" - это прикольный учебный материал, где автор учит основам и продвинутым концепциям Rust через реализацию шести разных связных списков - от плохого односвязного стека до production-unsafe двусторонней очереди,...