Обновить
93.36

Rust *

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

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

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

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

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

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

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

Новости

Пишем чат на Rust

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

По этой причине я всегда избегал более академических языков вроде 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 мин
Количество просмотров23K

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

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

Читать далее

Allure-отчет для Rust

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

Allure-report для rust

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

Читать далее

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

Rust не станет (С++)++, а Carbon — возможно, но нескоро

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

Безопасная, эргономичная интероперабельность между Rust и C/C++ была популярной темой на RustConf 2025. Чендлер Каррут, создатель языка Carbon и руководитель команд C++, Clang, и LLVM в Google, представил доклад о различных подходах к интероперабельности в Rust и Carbon — экспериментальном языке, позиционируемого как (C++)++. Его конечный вывод заключается в том, что, хотя возможности Rust по взаимодействию с другими языками постепенно расширяются, полного решения для совместимости с C++ в ближайшее время не будет — и поэтому остаётся место для Carbon, который может предложить другой путь постепенного обновления существующих C++‑проектов. Слайды его доклада доступны тем, кто хочет подробнее изучить приведённые примеры кода.

Читать далее

Flutter-дайджест сентября

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

Привет, друзья! 🌐

Сентябрь оказался по-настоящему горячим месяцем для Flutter-разработчиков — громкие релизы, свежие статьи на Хабре, видеоразборы с YouTube и целая россыпь полезных пакетов. На нашем канале FlutterPulse мы собрали всё самое интересное в одном месте, чтобы вы ничего не пропустили.

Читать далее

DX в процедурных макросах на Rust

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

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

Сегодня поговорим про процедурные макросы как про инструмент разработчика, который заботится о DX.

Процедурные макросы внедряют в исходники произвольный Rust-код на этапе компиляции. Это часть языка: атрибутные, derive и функциональные макросы работают через proc_macro и получают токены оригинального кода на вход. Формально это расширение языка строго до границ токенов, а не грамматики, что и позволяет Rust менять синтаксис без глобальных поломок макросов.

Процедурные макросы не гигиеничны в полном смысле: их результат ведет себя так, как будто вы написали этот код прямо в месте вызова. Это значит, он влияет на внешние use, сам зависит от окружения и легко цепляет конфликты имён, если не думать заранее. Для этого нам пригодятся Span::call_site и его друзья.

Читать далее

NE-Executable | разбор деталей Часть 3 (Экспорты)

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров1.3K

Эта заметка или статья является продолжением цикла о формате
Новых исполняемых (ориг. "NE") файлов для Windows 1.x-3x и OS/2 1x.
В этот раз речь пойдет о таблицах резидентных и не резидентных имён,
будет разбор типов экпортируемых записей и много интересных наблюдений
за Microsoft LINK.EXE.

Предупреждаю: этот выпуск получился слишком большим. Я сам не ожидал, что изучение этого вопроса займет столько места и времени.

Читать далее

Как генерировать изображения на Rust в 100 строчек кода с Yandex ART?

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

Если в вашем Rust-проекте возникает необходимость генерировать изображения, то расскажите зачем) А о том, как это сделать — в этой статье. В качестве источника самих картинок я выбрал Yandex ART из-за того, что с ним не нужно возиться со всякими трехбуквенными сервисами, реклама которых в России запрещена.

Читать далее

NE-Executable | Разбор деталей часть 2 (Таблица сегментов и релокаций)

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

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

Читать далее

Запускаем WebAssembly модули с Python хоста

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

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

В статье посмотрим как WASM-модули взаимодействуют с Python хостом. (Спойлер - не все так просто как хотелось, поддержка WASM в Python экосистеме пока слабая)

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