Rust
8.43K subscribers
444 photos
40 videos
3 files
985 links
Rust programming language

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

#VRHSZ
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Rust на устройстве с 2KB RAM

Rust уже давно вышел за рамки системного софта и серверного кода — теперь его запускают на микроконтроллерах с крошечными ресурсами.

Пример
- Микроконтроллер: WinChipHead CH32V003
- Память: 2 KB RAM
- Flash: 16 KB
- Да, Rust работает в таких условиях — без операционной системы и с прямым доступом к железу

Почему это круто
- Безопасность памяти даже на микроконтроллерах
- Возможность писать прошивки без C и undefined behavior
- Rust становится реальной альтернативой для embedded-разработки

Минимальная программа, аппаратные регистры, direct control — и всё это на Rust.

Подробности:
https://noxim.xyz/blog/rust-ch32v003/

#rust #embedded #iot #systemsprogramming #microcontrollers #firmware #riscv
👍64🏆146🤣3🖕2😱1😡1
🦀 Rust против C в embedded - не на словах, а в реальном тесте.

Исследователи взяли промышленное IoT-железо и запустили на нём две реализации одной и той же функциональности.

Одна команда писала на C.
Другая - на Rust.

Системы работали параллельно несколько месяцев в реальных условиях, а не в синтетическом бенчмарке.

Итог оказался неприятным для старого аргумента «для embedded нужен только C».

Rust не проиграл C ни по памяти, ни по скорости выполнения. Более того, runtime на Ariel OS оказался даже компактнее, чем классический bare-metal стек на C.

Вывод простой: аргумент «C быстрее и легче для прошивок» теперь звучит гораздо слабее.

Rust в embedded - это вполне рабочая альтернатива.

🔗 Подоробности: https://arxiv.org/abs/2604.25679

#Rust #RustLang #EmbeddedSystems #IoT #SystemsProgramming #C
🔥499🥰5🤔2🍓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
🔥16👍64❤‍🔥1👌1