Обновить
128.9

Rust *

Мультипарадигмальный компилируемый язык

Сначала показывать
Порог рейтинга
Уровень сложности

Давайте писать на Rust для DOS

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров3.4K

В этой статье я покажу как получить работающую под DOS программу, написанную на Rust.

Начинаем с установки Rust. Даже если он есть системный из пакетов, его недостаточно, так как мы будем (вынужденно) использовать nightly версию. Итак, идём на https://rustup.rs/, копируем предлагаемую строку и запускаем её в терминале. Чтобы команда заработала возможно потребуется доустановить curl. Имеет смысл выбрать в качестве ветки по-умолчанию nightly. Если вы выбрали не nightly, то нужно будет доустановить nightly тулчейн:

Читать далее

Новости

Пишем свою мобильную ОС с нуля на Rust

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров18K

Почему бы не запустить своё ядро прямо на смартфоне? Без Android, без Linux — только Rust, загрузчик и паяльник. В этой статье расскажу о результатах своего эксперимента, как оживить голое ARM-железо, увидеть первые символы в UART и даже вывести что-нибудь на экран.

Читать далее

Rust без паник: дельная техника для системного программирования

Время на прочтение13 мин
Количество просмотров6.2K

Может ли Rust заменить C? Этот вопрос беспокоил меня много лет. Тем временем я успел написать upb — библиотеку C для работы с Protocol Buffers, и сейчас являюсь её техническим руководителем. Вполне понятно стремление обеспечить безопасность памяти в пределах всего программного стека — поэтому и возникла идея портировать upb на Rust.

Притом, что мне приятны базовые принципы Rust, я долгое время относился к этой идее скептически и сомневался, что, портировав upb на Rust, удастся сберечь её производительность и компактность кода, которые мы с коллегами так старались оптимизировать. На самом деле, исходно я собирался написать статью о том, почему именно применительно к upb языку Rust никогда не сравниться с C по производительности.

Но недавно я открыл для себя одну технику, которая заставила меня немного переосмыслить этот вопрос. Я назову её «Rust без паник». Притом, что этот метод определённо не нов, мне нигде не удалось найти подробного разбора, в котором бы рассказывалось, как именно этот метод используется и какие проблемы решает. Правда, интересная дискуссия по этому поводу велась в теме Enforcing no-std and no-panic during build, где есть ссылки на некоторые релевантные треды из почтовой рассылки, посвящённой разработке ядра Linux. Вот другой интересный тред: Negative view on Rust: panicking

Надеюсь, эта статья позволит заполнить данный пробел.

Читать далее

Rust 1.91.0: aarch64-pc-windows-msvc на Tier 1, отлавливание сырых указателей

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров902

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

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.91.0 вам достаточно выполнить команду:

$ rustup update stable

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

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Что стабилизировано в 1.91.0

Работа с аудио в Rust: от записи до сжатия

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров722

🦀 Практическое руководство по работе с аудио в Rust: от захвата с микрофона через CPAL до эффективного сжатия в Opus. Реализация системы с задержкой <50 мс и сжатием 42:1. Исходный код, тесты и метрики производительности.

Материал отлично подходит для использования AI-агентами: поставил задачу ИИ-ассистенту и он написал работающий диктофон всего с одной правкой.

Читать далее

Сравнение Rust и Carbon

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров6.5K

Тема безопасного и эргономичного взаимодействия между Rust и C/C++ была популярна на конференции RustConf 2025, состоявшейся в Сиэтле, штат Вашингтон. Чендлер Каррут выступил с презентацией, в которой представил различные способы взаимодействия между Rust и Carbon — экспериментальным языком, который можно условно обозначить как «(C++)++». Он резюмировал, что, пусть возможности стыковки Rust с другими языками со временем расширяются, в обозримом будущем не стоит ожидать, что будет полноценно решена проблема его взаимодействия с C++. Поэтому как раз появляется ниша для Carbon, который может предложить иной подход для постепенного совершенствования существующих проектов на C++. Вот слайды к его презентации — для тех, кто хотел бы изучить код его примеров более подробно.

Читать далее

Rust и приведение типов

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.9K

Присматриваемся к Расту, как возможному кандидату на реализацию задачи Card DOM. Рассматриваем, как он поддерживает полиморфные структуры данных, в частности, приведение типов между трейтами.

Читать далее

Полнотекстовый поиск на Rust с помощью библиотеки Tantivy

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров1.9K

Привет, Хабр!

Cегодня я хочу поделиться с вами опытом работы с библиотекой Tantivy — это полнотекстовый поисковый движок, написанный на Rust. Если вы когда‑либо задумывались о том, чтобы встроить поиск в свое приложение на Rust (вместо того чтобы поднимать отдельный ElasticSearch или Solr), то Tantivy неплохой такой кандидат. Библиотека вдохновлена Lucene (тем самым движком, на котором работают Solr и ElasticSearch) и дает схожие возможности: индексирование текста, быстрый поиск по ключевым словам, поддержку сложных запросов.

Смотреть пример

Пишем чат на Rust

Уровень сложностиСредний
Время на прочтение62 мин
Количество просмотров4.3K

Очередной чат, и к тому же на rust?! Да, yet another. И да, в этой статье не будет каких-то новых откровений системного программирования с написанием своего фреймворка для работы со сетью на уровне драйверов или других испытаний. Этот альманах про мой первый опыт в веб-разработке, который может быть полезен для других новичков, ведь тут мы затронем помимо злосчастного rust такие вещи, как devcontainer, REST API, идентификацию-аутентификацию-авторизацию, WebSockets, SSE, юнит и интеграционные тесты, некоторые паттерны, логирование и прочее.

Читать далее

Дракончик учится летать: Brain-like Dragon Hatchling простыми словами

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров1.4K

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

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

Читать далее

Rust вместо React: как я написал Telegram WebApp SDK на Rust

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.4K

Фронтенд на Rust — звучит странно? Я написал Telegram WebApp SDK на Rust, совместимый с официальным API, и уже использую его в реальных проектах. В статье — зачем я это сделал, с какими проблемами столкнулся и чем это лучше привычного React.

Проявить заинтересованность

Разбираемся с Р и Е ядрами на примере гибридного процессора Raptor Lake

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров10K

Волей случая мне в руки попал ноутбук с гибридным процессором i7-13850HX, у которого есть производительные "Р" и эффективные "Е" ядра, и захотелось разобраться чуть поглубже, процессор довольно любопытный. Под катом мы сделаем несколько несложных замеров производительности.

Окунуться в Озеро Хищника

Всё что нужно и не нужно знать про заимствование в Rust

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров6.5K

Привет, Хабр!

Сегодня я хочу поговорить о заимствованиях в Rust – теме, которая очевидно вводит многих в заблуждения но первых порах, но жизненно необходима для каждого, кто хочет писать на Rust. Мы с вами разберём, зачем Rust ввёл эту концепцию, как она работает под капотом, и какие нюансы следует знать, чтобы подружиться с borrow checker’ом, а не воевать с ним каждый раз при компиляции кода.

Читать далее

Ближайшие события

Как я подружил OpenAI, Rust и Solana: квиз, который платит токенами за правильные ответы

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.5K

Что, если каждый правильный ответ в викторине приносил бы тебе крипту?

Я решил проверить эту идею — и собрал Solana Quiz, децентрализованное приложение, где пользователи проходят ежедневные квизы с вопросами от OpenAI и получают Solana‑токены за правильные ответы.

Да, это реально работает. И да — токен мы тоже создаём сами 😎

Читать далее

Как работает система владений и ссылок в Rust на низком уровне

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5.9K

Привет Хабр! В этой статье я хотел поговорить о теме вечных конфликтов разработчиков на C++ и Rust. Стоит ли того система управления памятью в Rust или все-же это бестолковый механизм стремящийся составить конкуренцию родному методу?

Систему управления памятью я разберу, а вот выводы остаются уже за вами.

Читать далее

Руководство по Rust для посредственного программиста

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров11K

Да, да, это моймаленький секрет — я посредственный программист. Определение слова «хакер», с которым я больше всего себя ассоциирую, звучит больше как «человек, который делает мебель топором». Я — именно такой, я пишу простой, прямолинейный, в основном, императивный код, потому что попытки разобраться в сложностях функциональных языков вызывают у меня головную боль.

По этой причине я всегда избегал более академических языков вроде OCaml, Haskell, Clojure и тому подобных. Я знаю, что это хорошие языки — люди намного умнее меня строят с их помощью потрясающие вещи, — но к тому моменту, когда я слышу слово «эндофунктор», я теряю всё внимание (и большую часть интереса к вопросу). Мои любимые языки — те, что требуют меньше интеллектуальных усилий: C, PHP, Python и Ruby.

Так что довольно занятно, что я с большим рвением принялся за Rust. Это, безусловно, самый сложный язык, с которым я чувствую себя хотя бы отдалённо комфортно «в бою». Отчасти потому, что я собрал набор принципов, позволяющих почти полностью избегать ссор с ужасающим механизмом контроля заимствования, временем жизни и прочими тёмными, пугающими уголками Rust. А ещё потому, что Rust помогает мне писать лучшее ПО, и я это чувствую (почти) всё время.

В духе помощи моим товарищам‑посредственным программистам, которые пытаются освоить Rust, ниже я представляю принципы, которые я собрал на данный момент. Поехали!

Читать далее

Парадокс сложности: почему сложное, но формализованное стало дешевле простого, но контекстно зависимого

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров12K

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

TL;DR: Оказалось проще формализовать и реализовать с нуля свой потокобезопасный движок формул Excel, чем оптимизировать уже готовый мутабельный движок epplus. Хотя позже я реализовал более простой в кодировании вариант, но гораздо более сложный с точки зрения архитектуры.

Читать далее

Rust + C++ через FFI: как подружить два мира и не сойти с ума

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.2K

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

В омут FFI

Go, Rust или всё же C++? Куда мы переписываем наш высоконагруженный бэкенд в 2025

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров24K

Всем привет! Сегодня хочу зажечь настоящий холивар — но с практическим уклоном. Речь пойдет о нашем большом рефакторинге, вернее, о почти полном переписывании ядра нашего API-гейтвея.

Немного контекста: У нас классический монолит на Java (Spring Boot), который неплохо служил нам лет 5. Но с ростом нагрузки до 100k+ RPS мы уперлись в лимиты:

Читать далее

Allure-отчет для Rust

Время на прочтение4 мин
Количество просмотров854

Allure-report для rust

При генерации allure-отчета в проекте, написанном на Rust, я столкнулся с проблемой преобразования стандартного cargo test в формат, поддерживаемый allure. В этой статье хочу предложить свое решение.

Читать далее
1
23 ...