rust_code | Unsorted

Telegram-канал rust_code - Rust

8052

Rust programming language По всем вопросам- @haarrp @ai_machinelearning_big_data - машинное обучение @programming_books_it - бесплатные it книги @pythonl - 🐍 @ArtificialIntelligencedl - AI @datascienceiot - ml 📚 #VRHSZ

Subscribe to a channel

Rust

👣 На Stepik обновили курс «Rust: полный курс разработчика. С нуля до профи»

Представьте: через три месяца вы открываете чужой Rust-код и читаете его как книгу.

Arc<Mutex<T>> не вызывает панику. impl Future не пугает. Вы точно знаете, почему компилятор ругается и как это починить за 10 секунд.

Это не фантазия. Это результат 50 уроков, в которых каждая концепция объясняется через код и закрепляется практикой.

Ownership, traits, generics, async, unsafe - всё, что казалось магией, станет рабочим инструментом.

А бонусом - портфолио проектов: от CLI-утилит до REST API и WebAssembly.

Вы и так знаете, что Rust - ваш следующий язык. Этот курс просто сделает это реальностью.

Сегодня - 55% процентов от цены, торопись: https://stepik.org/a/269250/

Читать полностью…

Rust

Spinlock<T> с нуля на Rust.

Без Mutex. Только AtomicBool, UnsafeCell и RAII-guard.

За ~60 строк unsafe-кода разобрался с memory ordering и получил рабочую альтернативу мьютексу 🦀

Репозиторий
https://github.com/1rishuraj/low-latency-rust/tree/main/spinlock

Читать полностью…

Rust

Rust и QUIC уже делают то, к чему ИИ только подбирается

Пока все спорят про агентов и автокодинг, в системной разработке quietly происходит очень важная вещь. Люди начинают нормально проверять сложные системы, а не надеяться на тесты.

Команда Адольфо Очагавии взяла QUIC-симулятор на базе quinn и попыталась убедиться, что он вообще работает корректно. Не на простых кейсах, а на произвольных сетях, включая сценарии уровня Земля–Марс.

Обычные тесты быстро закончились. Покрыть такие сценарии руками невозможно.

Они пошли другим путём. Сначала зафиксировали на бумаге, что считается корректным поведением. Затем встроили audit-лог прямо в симуляцию. После этого написали отдельный verifier, который прогоняет каждую симуляцию и проверяет её автоматически.

Ключевой момент в том, как это реализовано. Основную логику вообще не трогали. Проверка вынесена в отдельный слой. Сам verifier достаточно простой, его можно прочитать и понять без погружения в систему. Поверх этого появились golden-тесты, которые ловят регрессии.

Это выглядит как практическая версия того, о чём сейчас много говорят в контексте ИИ. Не просто генерировать код или тесты, а формализовать поведение системы и проверять его на уровне свойств.

Если переносить на AI-системы, то это ровно та же проблема. У нас есть агенты, пайплайны, куча состояний и внешних эффектов. И почти нет нормальной верификации. Всё держится на эвристиках и наблюдении.

Этот кейс хорошо показывает, куда двигаться дальше. Не усложнять архитектуру, а добавлять слой проверяемости поверх неё.

Разбор здесь
https://ochagavia.nl/blog/a-real-world-case-of-property-based-verification/

Читать полностью…

Rust

Выиграй деньги, став чемпионом ИТ-соревнования от МТС

Остались считанные дни до окончания регистрации — призовой фонд 1 500 000 рублей.

True Tech Hack — это три уникальные задачи для инженеров данных, разработчиков и системных аналитиков. За лучшие решения дают деньги и зовут на стажировку.

Для всех финалистов — закрытая вечеринка с диджеем в Москве на видовой площадке.

Регистрация закроется вечером 10 апреля — торопись!

Читать полностью…

Rust

🚀 Gemma 4 - новое семейство открытых моделей Google, которые можно запускать прямо на своём железе.

Модели заточены для сложного reasoning и агентных задач.

🔵 Доступны в четырёх вариантах:

• 31B Dense и 26B MoE
Топовый уровень производительности для сложных локальных задач: кастомные код-ассистенты, анализ научных данных и не только.

• E4B и E2B (Edge)
Оптимизированы для мобильных устройств — работают в реальном времени с текстом, изображениями и аудио.

🤖 Что можно делать:

• строить автономных ИИ-агентов
• планировать и выполнять многошаговые задачи
• взаимодействовать с приложениями
• искать данные и вызывать API

👉 Встроенная работа с инструментами (tool use) из коробки.

🧠 Контекст до 256K токенов:

• анализ целых кодовых баз
• длинные цепочки действий без потери контекста
• стабильная работа в сложных сценариях

⚡️ Начать можно уже сейчас через Google AI Studio

Также веса моделей доступны на Hugging Face, Kaggle и Ollama.

Лицензия: Apache 2.0.

Blog: https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/
GGUFs: https://huggingface.co/collections/unsloth/gemma-4
Guide: https://unsloth.ai/docs/models/gemma-4


@ai_machinelearning_big_data

#Gemma

Читать полностью…

Rust

Парень переписал Claude Code на Python за ночь - и взорвал GitHub

Anthropic случайно засветили исходники своего ИИ-редактора Claude Code и они мгновенно разлетелись по сети.

Разработчик из Южной Кореи, Sigrid Jin, увидел это в 4 утра и не стал ждать.

За одну ночь он переписал ключевые части проекта на Python и выложил форк под названием Claw Code.

Результат:
- 50 000 звёзд всего за 2 часа
- вирусное распространение по всему GitHub
- полноценный агентный стек, сохранённый в новой реализации

Сейчас он уже работает над версией на Rust.

История про то, как скорость и скилл иногда решают больше, чем команды и бюджеты

https://github.com/instructkr/claw-code

🐍 полезные ресурсы 🚀Max

@machinelearning_interview

Читать полностью…

Rust

🌟 Лучшие репозитории на GitHub для Claude Code, которые могут ускорить ваш следующий проект

Claude Mem
https://github.com/thedotmack/claude-mem

Память для Claude с сохранением контекста между задачами
UI UX Pro Max

https://github.com/nextlevelbuilder/ui-ux-pro-max-skill

Набор навыков для генерации продакшен-уровня интерфейсов

n8n-MCP
https://github.com/czlonkowski/n8n-mcp

Интеграция Claude с n8n через MCP для автоматизации workflow
Obsidian Skills
https://github.com/kepano/obsidian-skills

Навыки для работы с Obsidian и структурированием знаний

LightRAG
https://github.com/HKUDS/LightRAG

Лёгкая RAG-система для быстрого поиска и генерации
Everything Claude Code
https://github.com/affaan-m/everything-claude-code

Большая база знаний, паттернов и практик по Claude Code
Superpowers
https://github.com/obra/superpowers

Расширение возможностей Claude Code для сложных задач
Awesome Claude Code
https://github.com/hesreallyhim/awesome-claude-code

Кураторская подборка инструментов и ресурсов
GSD (Get Shit Done)

https://github.com/gsd-build/get-shit-done

Полезный набор инструментов для максимальной продуктивности и быстрого выполнения задач
.

Читать полностью…

Rust

📘 На Stepik вышел курс — «Rust для профессионалов»

Уже уверенно пишете на Rust и готовы к новым вызовам? Этот курс — именно то, что нужно, чтобы вывести свои навыки на экспертный уровень.

🔍 Что вы получите:
• Глубокое понимание ключевых тем: generics, lifetimes, async, управление памятью
• Решение реальных инженерных задач: параллелизм, системное программирование, архитектура
• 150 интерактивных заданий с автопроверкой — всё в браузере, без установки, в удобное для вас время

🎓 Сертификат по завершении — добавьте его в резюме или профиль LinkedIn

🚀 Прокачайте Rust с пользой и удовольствием. Начните уже сегодня и получите скидку 25%, которая действительна в течение 48 часов

👉 Пройти курс на Stepik

Читать полностью…

Rust

📌 Google разработала алгоритм квантования KV-кэша без потери точности.

Подразделение Research анонсировало TurboQuant, алгоритм векторного квантования, объединяющий 2 других метода - QJL и PolarQuant, который решает проблему увеличения KV-кэша при работе с длинным контекстом.

TurboQuant будет представлен на ICLR 2026, PolarQuant - на AISTATS 2026.

KV-кэш хранит промежуточные представления токенов, чтобы модель не пересчитывала их на каждом шаге генерации. С ростом контекста он превращается в узкое место по памяти.

Обычное векторное квантование сжимает эти данные, но вносит накладные расходы: для каждого блока нужно хранить константы квантования в полной точности, а это плюс 1–2 бита на элемент, что частично обесценивает само сжатие.


🟡TurboQuant - двухэтапный пайплайн.

Сначала PolarQuant: случайный поворот выравнивает геометрию векторов, после чего они переводятся из декартовых координат в полярные (радиус и угол). Распределение углов оказывается предсказуемым и сконцентрированным, поэтому нормализация и хранение дополнительных констант становятся больше не нужны.

На втором этапе подключается QJL, метод на основе преобразования Джонсона-Линденштраусса, который кодирует остаточную ошибку первого этапа всего одним знаковым битом и через встроенную оценочную функцию сочетает высокоточный запрос с низкоточными сжатыми данными, корректно вычисляя attention score.

Ни один из методов не требует обучения или дообучения и работает в режиме "без предварительного анализа набора данных".

Алгоритмы тестили на бенчмарках для длинного контекста: LongBench, Needle In A Haystack, ZeroSCROLLS, RULER и L-Eval с моделями Gemma и Mistral.

При квантовании KV-кэша до 3 бит TurboQuant показал нулевую деградацию точности на всех задачах: поиск «иголки в стоге сена», QA, генерация кода, суммаризация.


Объем KV-кэша при этом сократился в 6 раз. На H100 четырехбитный TurboQuant ускорил вычисление attention-логитов до 8 раз по сравнению с 32-битными ключами.


Область применения не ограничивается KV-кэшем. В экспериментах с высокоразмерным векторным поиском TurboQuant стабильно превзошел по recall методы PQ и RaBitQ несмотря на то, что те использовали крупные код-буки и подстройку под конкретный датасет.


🟡Статья
🟡Arxiv


@ai_machinelearning_big_data

🎯Полезные Мл-ресурсы 🚀 Max

#AI #ML #LLM #TurboQuant #Google

Читать полностью…

Rust

🦀 Как может выглядеть будущее Rust

В новой статье “A Grand Vision for Rust” разработчик Yoshua Wuyts рассуждает о том, в каком направлении может развиваться язык в ближайшие годы.

Главная идея - сделать Rust ещё более надежным системным языком, который позволяет писать быстрые программы и при этом максимально снижает вероятность ошибок.

Один из возможных шагов - развитие системы эффектов. Смысл в том, чтобы функции могли явно указывать, какие действия они выполняют. Например, делает ли функция ввод-вывод, может ли вызвать panic, использует ли выделение памяти или запускает параллельные задачи.

Если такие свойства будут описаны на уровне типов, компилятор сможет проверять гораздо больше вещей ещё до запуска программы.

Также обсуждается развитие модели конкурентности и более удобная работа с асинхронным кодом. Идея в том, чтобы управление задачами стало более структурированным и предсказуемым.

Отдельное внимание уделяется упрощению сложных частей языка и улучшению инструментов для системного программирования.

В целом автор говорит о том, что Rust уже считается одним из самых безопасных языков, но в будущем он может стать платформой, где корректность программ будет ещё сильнее контролироваться самим компилятором.🦀 Как может выглядеть будущее Rust

В новой статье “A Grand Vision for Rust” разработчик Yoshua Wuyts рассуждает о том, в каком направлении может развиваться язык в ближайшие годы.

Главная идея - сделать Rust ещё более надежным системным языком, который позволяет писать быстрые программы и при этом максимально снижает вероятность ошибок.

Один из возможных шагов - развитие системы эффектов. Смысл в том, чтобы функции могли явно указывать, какие действия они выполняют. Например, делает ли функция ввод-вывод, может ли вызвать panic, использует ли выделение памяти или запускает параллельные задачи.

Если такие свойства будут описаны на уровне типов, компилятор сможет проверять гораздо больше вещей ещё до запуска программы.

Также обсуждается развитие модели конкурентности и более удобная работа с асинхронным кодом. Идея в том, чтобы управление задачами стало более структурированным и предсказуемым.

Отдельное внимание уделяется упрощению сложных частей языка и улучшению инструментов для системного программирования.

В целом автор говорит о том, что Rust уже считается одним из самых безопасных языков, но в будущем он может стать платформой, где корректность программ будет ещё сильнее контролироваться самим компилятором.

blog.yoshuawuyts.com/a-grand-vision-for-rust/
#rust #rustlang

Читать полностью…

Rust

🌐 IRBox: Удобный и безопасный прокси-клиент

IRBox предлагает многофункциональную поддержку протоколов и продвинутые инструменты управления для обеспечения безопасного и стабильного интернет-соединения. Идеален для пользователей, заботящихся о конфиденциальности.

🚀 Основные моменты:
- Поддержка множества протоколов (VLESS, VMess, Shadowsocks и др.)
- Расширенные функции управления (правила маршрутизации, автообновление подписок)
- Интуитивно понятный интерфейс с темами и тестированием задержки серверов

📌 GitHub: https://github.com/frank-vpl/IRBox

#rust

Читать полностью…

Rust

🤔Не понимаете, как сделать код универсальным и при этом не потерять в скорости?

📆На открытом уроке 18 марта в 20:00 МСК разберём, как описывать поведение через трейты, писать обобщённый код с дженериками и осознанно выбирать между статическим и динамическим полиморфизмом. На практике превратим конкретную функцию в универсальную, сохранив безопасность и производительность.

После вебинара вы сможете объяснить разницу между impl Trait и dyn Trait, проектировать обобщённые структуры и читать сложный код в стандартной библиотеке и сторонних крейтах.

⚡️Встречаемся в преддверии старта курса «Rust Developer. Basic». Если вы хотите писать гибкий и при этом быстрый код на Rust — регистрируйтесь и проверьте свои подходы на практике: https://tglink.io/150e33d3b689ab?erid=2W5zFGdDRzy

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Rust

🦀 Вышел rustup 1.29.0

Обновление получилось действительно полезным - без громких обещаний, зато с улучшениями, которые заметны в реальной работе.

Что нового:

- rustup update стал быстрее благодаря параллельной загрузке и распаковке
- появилась официальная поддержка Solaris - sparcv9 и x86_64
- rustup теперь автоматически настраивает PATH для tcsh и xonsh
- если у вас уже есть свой rust-analyzer в PATH, rustup будет использовать именно его - удобно для Neovim и Helix
- к команде присоединился новый участник - @FranciscoTGouveia

Особенно приятно видеть изменения не только для массовых сценариев, но и для более нишевых окружений и удобных dev-воркфлоу.

Небольшой релиз, но очень практичный.

#rust #rustlang #programming

https://blog.rust-lang.org/2026/03/12/Rustup-1.29.0/

Читать полностью…

Rust

👣 Comprehensive Rust - один из самых подробных бесплатных курсов по языку Rust.

Это полноценный учебник на 300+ страниц, который используется внутри Google для обучения разработчиков Rust. Материал построен так, чтобы пройти путь от базового синтаксиса до продвинутых возможностей языка.

Внутри курса разбираются ключевые темы Rust:

- владение памятью и borrowing
- lifetimes
- структуры и enum
- pattern matching
- generics и traits
- error handling
- concurrency
- async Rust
- работа с unsafe кодом

Отдельный плюс курса - большое количество примеров и практических упражнений, которые помогают быстро понять философию языка.

Если вы хотите разобраться, почему Rust считается одним из самых безопасных и быстрых системных языков - это один из лучших материалов для старта.

google.github.io/comprehensive-rust/comprehensive-rust.pdf

Читать полностью…

Rust

Децентрализованные биржи (DEXы): принцип работы и создание собственной на Solidity - бесплатный вебинар

Что будет на вебинаре?
- Принципы работы децентрализованных бирж (DEX) и AMM-модели
- Формула x * y = k: как формируется цена, откуда берётся ликвидность и почему возникает slippage
- Реализация простейшего DEX на Solidity для обмена ETH ↔ ERC20
- Написание тестового ERC20-токена и взаимодействие с ним через approve / transferFrom
- Создание минимального интерфейса для обмена токенов и работы с контрактом

Что вы узнаете:
- Как DEX обходятся без ордербуков и централизованных маркет-мейкеров
- Как реализуется AMM-логика в смарт-контракте на Solidity
- Как безопасно работать с ETH и ERC20 в одном контракте
- Как связать смарт-контракт с интерфейсом и выполнить реальный swap
- Как выглядит минимально рабочий DEX, который можно развивать дальше

Записаться: https://otus.pw/Qedb/?erid=2W5zFHoohwP
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Rust

🔥 Плохой день для хейтеров ИИ. Сообщество Linux согласилось принимать код, сгенерированный ИИ, если это не низкокачественный мусор.

При этом вся ответственность остаётся за людьми - именно они должны гарантировать, что код соответствует стандартам Linux.

Линус не шутит, когда речь идёт о качестве кода. Это серьёзный шаг. (уже слышно, как он орёт в PR-ах)

На этой неделе в проекте Linux kernel впервые официально разрешили использовать ИИ при написании кода. Но с важным условием - вся ответственность теперь полностью на разработчике.

Позиция Линуса Торвальдса максимально простая: ИИ - это просто инструмент. Если разработчик приносит плохой код, проблема не в инструменте, а в нём самом. Поэтому вместо запретов решили ужесточить правила ответственности.

Ключевой момент - подпись в коммите. Строка Signed-off-by теперь ещё жёстче закрепляет правило: только человек имеет право её ставить. Это юридическое подтверждение того, что именно ты отвечаешь за код. Никакие AI-агенты не могут это делать.

Если, например, Claude сгенерировал race condition в block layer, а ты это пропустил - это твой баг. В истории останется твоя подпись, не модели.

Контекст важен. Open-source сейчас буквально захлёбывается от AI-кода сомнительного качества. Уже есть последствия:

создатель cURL закрыл bug bounty из-за потока галлюцинированных патчей
tldraw начал автоматически закрывать внешние PR
Node.js и OCaml ловят гигантские AI-патчи на 10k+ строк

Linux выбрал самый прагматичный путь - не запрещать, а заставить отвечать.

ИИ можно использовать. Но теперь без иллюзий: написал ты. Проверил ты. Отвечаешь тоже ты.

🖥 Полезные Linux ресурсы 🚀 Max

@machinelearning_interview

Читать полностью…

Rust

🚨 В Rust появился безопасный способ брать указатели на поля без UB

Если работаешь с raw pointers, рано или поздно упираешься в проблему.

Нужно получить указатель на поле структуры. Но через обычную ссылку это может сломать правила borrow checker и привести к скрытым багам.

Особенно если речь про unsafe-код и тонкие места с aliasing.

Для этого в std есть addr_of! и addr_of_mut!.

Они позволяют взять указатель на поле напрямую, без создания временной ссылки. Это важно, потому что ты не нарушаешь stacked borrows и не создаёшь лишних промежуточных состояний.

По сути ты получаешь pointer projection без побочных эффектов.

Это мелкая деталь, но в низкоуровневом коде она решает реальные проблемы. Особенно в FFI, системном коде и оптимизациях.

Если пишешь unsafe в Rust, эти макросы стоит знать.

Читать полностью…

Rust

🦀 Rust: заметки о написании WASM

Rust - один из лучших языков для разработки WebAssembly, но у него есть немало «острых углов».

В своей статье Brooklyn Zelenka делится практическими уроками из реальной разработки Rust-WASM и объясняет, какие проблемы чаще всего встречаются и как их обходить.

• Rust отлично подходит для компиляции в WebAssembly - безопасная память, хорошая интеграция с LLVM и высокая производительность.
• Однако связка Rust + wasm-bindgen может быть неудобной, и многие разработчики сталкиваются с неожиданными ограничениями и странностями API.
• В реальных проектах важно выработать собственные паттерны архитектуры и взаимодействия с хост-средой (обычно JavaScript).
• Многие проблемы WASM связаны не с Rust, а с самим экосистемным слоем: биндинги, сборка, взаимодействие с браузером и tooling.

Автор делится конкретными практическими приёмами, которые позволяют значительно упростить работу с Rust-WASM и избежать типичных ошибок.

Если вы работаете с WebAssembly или только планируете использовать Rust для WASM — статья обязательна к прочтению.

https://notes.brooklynzelenka.com/Blog/Notes-on-Writing-Wasm

Читать полностью…

Rust

🦀 Rust совет

На прошлой неделе мы показывали, как встраивать статические данные в код с помощью include_str!.

Сегодня - маленький, но очень полезный трюк.

⚙️ Запуск Cargo с конкретной версией toolchain

Иногда нужно проверить, будет ли ваш проект работать на следующей версии Rust (которая скоро станет stable).

Для этого не нужно менять глобальную версию Rust.

Достаточно просто указать toolchain прямо в команде:


cargo +beta test


Можно использовать и другие версии:


cargo +nightly build
cargo +stable check


💡 Это удобно для:
• тестирования совместимости с будущими релизами Rust
• проверки nightly-фич
• CI-пайплайнов
• отлова будущих breaking changes

Маленький трюк, но экономит часы дебага.

#rust #rustlang

Читать полностью…

Rust

🦀 Rust: Traits, Generics и Coherence

Система traits в Rust очень мощная, но правила coherence и orphan rules иногда делают разработку довольно болезненной.

Часто кажется, что язык просто не даёт реализовать trait там, где это логично.

В статье разбирают, как перестать бороться с этими ограничениями и вместо этого использовать более гибкий подход — context-generic реализации traits.

Это позволяет:

- писать более модульный код
- избегать конфликтов impl
- лучше работать с generics
- обходить ограничения orphan rules без хака

Хороший разбор для тех, кто уже пишет на Rust и хочет глубже понять архитектуру trait-системы.

https://contextgeneric.dev/blog/rustlab-2025-coherence/

#rust #rustlang

Читать полностью…

Rust

🦀 Хотите расти как Rust-разработчик ?

Перестаньте читать только статьи с абстракциями. Начните разбирать реальный код под нагрузкой.

Настоящий уровень приходит, когда вы работаете с системными проблемами:

- анализируете memory pressure
- находите lock contention
- оптимизируете структуры данных
- переходите к data-oriented design
- профилируете поведение в production-сценариях

Отличный пример такого подхода:
разбор того, как диагностировать утечки памяти, снижать давление на аллокатор и устранять узкие места синхронизации.

Почему это важно:

В Rust рост происходит не через синтаксис или паттерны.
Рост происходит, когда вы начинаете думать в терминах:

- кэш-локальность
- аллокации
- layout данных
- contention
- пропускная способность

Главный переход в карьере Rust-разработчика:

От “как написать правильно” → к “как это работает под нагрузкой”.

Именно там начинается настоящая системная инженерия.

https://mnt.io/articles/about-memory-pressure-lock-contention-and-data-oriented-design/

Читать полностью…

Rust

🦀 Вышел Rust 1.94.1

Команда Rust выпустила новый патч-релиз - 1.94.1.

- это не новый функциональный релиз
- исправляет 3 ошибки, появившиеся в 1.94.0

Обновиться можно одной командой:

rustup update stable

Rust 1.94.0 (предыдущий релиз) принёс реальные изменения:
- новые API и улучшения стандартной библиотеки
- улучшения Cargo и конфигов
- расширение поддержки платформ (включая RISC-V)
- обновления Unicode и lint’ов

👉 А вот 1.94.1 - это чисто «починка после релиза»:
фиксит баги, которые всплыли сразу после выхода 1.94.0
Вывод:
- если ты уже на 1.94.0- обновляться обязательно
- если нет, просто ставь 1.94.1 и не думай

Классический Rust-подход:
сначала выкатывают фичи → потом быстро стабилизируют продакшен

https://blog.rust-lang.org/2026/03/26/1.94.1-release/

Читать полностью…

Rust

🤖 Spacebot: AI для команд и сообществ

Spacebot — это мощный AI-агент, созданный для работы в многопользовательских средах, таких как Discord и Slack. Он обрабатывает множество запросов одновременно, не блокируя пользователей и не теряя контекст. Идеально подходит для активных сообществ и команд, обеспечивая эффективное взаимодействие и выполнение задач.

🚀 Основные моменты:
- Поддержка одновременных разговоров и задач.
- Интеграция с Discord, Slack и Telegram.
- Специализированные процессы для выполнения различных задач.
- Возможность развертывания через один клик или самостийно.
- Многофункциональные инструменты для работы с файлами и кодом.

📌 GitHub: https://github.com/spacedriveapp/spacebot

#rust

Читать полностью…

Rust

👣 Microsoft выкатили RustTraining.

Вот лишь часть тем, которые сразу зацепили:

- Async в продакшене
- Конкурентность и runtime
- Почему разработчикам на C/C++ стоит переходить на Rust
- no_std — Rust без стандартной библиотеки
- Зачем Rust разработчикам на C#
- Системное программирование и продакшн
- Unsafe Rust - управляемый риск
- Phantom types
- Машины состояний для протоколов

И это только малая часть.

Похоже, туда вложили очень много работы, точно стоит выделить время и пройтись.

github.com/microsoft/RustTraining/

Читать полностью…

Rust

👣👣 Discord объяснил, почему часть инфраструктуры переходит с Go на Rust

Discord начал переносить отдельные компоненты с Go на Rust, потому что при их масштабе главная цена - это предсказуемость задержек и эффективность памяти. Речь не про "мода на Rust", а про конкретные технические потолки, в которые упираются большие real-time системы.

Контекст - почему это вообще стало проблемой
Discord - это нагрузка с постоянными пиками и жёсткими требованиями к latency. Когда у тебя миллионы одновременных соединений, сообщения в реальном времени, голосовые сессии и огромные объёмы событий, любая нестабильность по времени ответа превращается в пользовательские лаги и дорогую инфраструктуру.

Что в Go стало упираться на масштабе Discord

1) GC и хвостовые задержки
Go использует сборщик мусора. Он стал очень хорошим, но у больших сервисов с активными аллокациями и большими heap-объёмами GC всё равно может:
- создавать краткие паузы или "подёргивания"
- давать спайки по p99 и p999 latency
- делать поведение менее предсказуемым именно в моменты пиков

На небольших сервисах это часто незаметно. На real-time инфраструктуре, где важны хвостовые перцентили, это начинает быть системной проблемой.

2) Цена аллокаций и давление на память
Go удобен, но он поощряет стиль, где аллокации происходят "само собой". На горячих путях это приводит к:
- росту heap
- большему количеству работы GC
- большему потреблению RAM
- а значит - к большему числу машин и более высокой стоимости

3) Потребность в более низком уровне контроля
В некоторых компонентах Discord понадобился контроль над:
- тем, когда и как выделяется память
- буферами и их жизненным циклом
- layout данных
- оптимизациями "вплоть до байта"
Go как язык намеренно ограничивает такие вещи ради простоты и скорости разработки. Когда система доросла, Discord понадобилось больше "ручек".

Почему именно Rust


1) Нет GC - стабильнее latency
Rust не использует сборщик мусора. Память освобождается детерминированно через владение и области видимости.
Результат - меньше неожиданных спайков по времени ответа, особенно на больших heap-нагрузках.

2) Контроль над аллокациями и структурой данных
Rust позволяет проектировать горячие пути так, чтобы:
- уменьшать количество аллокаций
- переиспользовать буферы
- держать данные в более cache-friendly структурах
- снижать overhead на каждом запросе/событии

3) Производительность уровня системного программирования с безопасностью
Discord явно не хочет возвращаться в мир "C/C++ и вечных memory bugs". Rust даёт:
- системную производительность
- защиту от use-after-free, data races и многих классов ошибок памяти на уровне компилятора

Главный нюанс - Discord не "выкинул Go"
Важная мысль из текста Discord: это не религия, а прагматика.
Обычно выглядит так:
- Go остаётся отличным для продуктовой логики, быстрых сервисов, разработки и поддержки
- Rust применяют там, где есть жёсткий performance budget - горячие пути, сетевые компоненты, обработка больших объёмов событий, инфраструктурные библиотеки

То есть это "гибридная стратегия", а не миграция всего подряд.

Что это говорит о рынке

1) Go закрепился как язык для скорости разработки
Если цель - быстро писать и менять микросервисы, Go остаётся одним из лучших выборов.

2) Rust всё чаще становится языком инфраструктуры
Когда компания вырастает и начинает платить миллионы за лишние миллисекунды и гигабайты RAM, Rust становится экономически выгодным.

3) Критерий выбора меняется с "удобно" на "предсказуемо"
На больших масштабах выигрывает не тот, кто чуть быстрее в среднем, а тот, у кого меньше хвостовых задержек и меньше сюрпризов под нагрузкой.

История Discord - это не про - "Go плохой". Это кейс о том, что на hyperscale появляются другие ограничения.
Go - отличный default для backend.
Rust - сильный инструмент для performance-critical инфраструктуры, где важны p99/p999, память и контроль над горячими путями.

https://discord.com/blog/why-discord-is-switching-from-go-to-rust/

Читать полностью…

Rust

🚨 Похоже, Chrome может стать слишком тяжёлым для эпохи AI-агентов.

Появился новый проект - Lightpanda.

Это headless-браузер, написанный с нуля, который работает:

• в 11 раз быстрее
• использует в 9 раз меньше памяти

И самое интересное - он не основан на Chromium.

Сейчас почти все AI-агенты, которые автоматизируют работу с сайтами, используют Chrome под капотом.

Но есть проблема.

Вы фактически запускаете огромное десктопное приложение без интерфейса, иногда сотни раз на сервере.

И всё это ради задачи, где не нужно отрисовывать ни одного пикселя.

Это примерно как арендовать фуру, чтобы отправить письмо.

Lightpanda делает всё иначе.

Он написан на Zig и изначально создавался только для одной цели —
максимально быстрый headless-браузер для автоматизации.

При этом он всё ещё поддерживает:

• JavaScript
• Ajax
• Fetch / XHR
• SPA-приложения
• infinite scroll

Но без сотен мегабайт браузерного «балласта», который вам не нужен.

Подключается он тоже очень просто:

• работает с Playwright, Puppeteer и chromedp через CDP
• одна команда Docker
• CDP-сервер на порт 9222
• можно заменить Chrome буквально за 30 секунд

Где это особенно полезно:

• AI web-агенты
• сбор данных для обучения LLM
• масштабная браузерная автоматизация
• тестовые пайплайны

Проект пока в beta, но уже набрал 11.8K ⭐ на GitHub.

И это open source под лицензией AGPL-3.0.

Похоже, для AI-агентов может появиться новый стандарт браузера.

https://github.com/lightpanda-io/browser

Читать полностью…

Rust

Rust-совет недели 🦀

Можно встроить статический текст прямо в бинарник с помощью include_str!.

Этот макрос читает файл во время компиляции и встраивает его содержимое прямо в программу. Никакого чтения файлов во время выполнения.

Это удобно для:
- шаблонов конфигурации
- встроенных скриптов
- статических ресурсов
- тестовых данных

Пример:


fn main() {
const TEXT: &str = include_str!("static-data.txt");
let program = include_str!("main.rs");
}


Во время компиляции Rust читает файл и помещает его содержимое прямо в исполняемый файл.

Просто, быстро и без runtime IO.

#rust #junior #rustlang

Читать полностью…

Rust

🖥 Языки программирования и время, которое потребовалось для выпуска первой версии

🦀 Rust - 9 лет (2006 → 2015)
🤖 Kotlin - 6 лет (2010 → 2016)
⚙️ C++ - 6 лет (1979 → 1985)
☕ Java - 5 лет (1991 → 1996)
🐹 Go - 5 лет (2007 → 2012)
🍎 Swift - 4 года (2010 → 2014)
🔧 C - 3 года (1969 → 1972)
🧬 Scala - 3 года (2001 → 2004)
📊 Julia - 3 года (2009 → 2012)
🐍 Python - 2 года (1989 → 1991)
🌐 JavaScript - 10 дней (1995)
💎 Ruby - 2 года (1993 → 1995)
🐘 PHP - 1 год (1994 → 1995)
🔷 C# - 2 года (1998 → 2000)
🎯 TypeScript - 2 года (2010 → 2012)
🎯 Dart - 2 года (2009 → 2011)
⚡ Elixir - 2 года (2011 → 2013)
🧠 Haskell - 3 года (1987 → 1990)
🧩 Objective-C - 1 год (1983 → 1984)

Читать полностью…

Rust

🦀 Вышел Rust 1.94.0

В новом релизе появилось небольшое, но очень полезное изменение для разработчиков CLI-утилит.

Теперь переменная CARGO_BIN_EXE_<name> доступна не только во время сборки, но и во время выполнения программы.

Это позволяет напрямую получать путь к скомпилированному бинарнику и использовать его в тестах. Раньше для этого приходилось писать обходные решения или вручную искать путь к файлу.

Теперь Cargo сам предоставляет путь к бинарному файлу, что сильно упрощает интеграционное тестирование CLI-приложений.

Полный список изменений доступен в changelog релиза Rust 1.94.0.

https://github.com/rust-lang/rust/releases/tag/1.94.0

#rustlang #rust #cargo #release #testing #opensource

Читать полностью…

Rust

🦀 Google наконец выпустил официальный CLI на Rust для своих сервисов.

Теперь через один инструмент можно работать с Gmail, Drive, Sheets, Calendar, Admin, Keep, Meet и еще десятком сервисов Google.

#rust #rustlang #programming

https://github.com/googleworkspace/cli

Читать полностью…
Subscribe to a channel