Как стать автором
Обновить
77
0
Андрей Лесников @ozkriff

Rust сектант и хобби-игродел

Отправить сообщение

«Rust — это язык для изобретательства»: Илья Лахин о том, нужен ли Rust в GameDev

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

Rust — крутой, перспективный язык. Кто-то даже считает, что он может найти свое применение в любом направлении разработки. Так это или нет? Обсудили с Ильей Лахиным, который уже три года применяет Rust в создании игр и считает, что это не лучшая идея, если хочешь хорошо зарабатывать прямо сейчас. 

Читать далее
Всего голосов 16: ↑12 и ↓4+10
Комментарии22

Rust'ерзание краба. Пробуем реверсить Rust удобно

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

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

В этой статье мы посмотрим на него с "обратной" стороны, а именно попробуем пореверсить программу, написанную на Rust, и выяснить, что можно сделать, чтобы сделать ее анализ проще. Рассмотрим утилиты, приложения и плагины, а также напишем свой плагин для IDA Pro, Cutter и rizin, чтобы автоматически создать сигнатуры для исполняемого файла без отладочных символов. Поговорим о FLIRT-сигнатурах, их преимуществах и недостатках и о том, можно ли автоматизировать их создание.

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии2

Rust 1.61.0: пользовательские коды возврата в main, расширение возможностей const fn и изменение IO-блокировок

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

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


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


rustup update stable

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


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

Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии1

Используем клиентский процессор по максимуму. Часть 1: Rust + WebAssembly

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

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

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

Прирост производительности при использовании всех техник оптимизации по сравнению с реализацией на чистом JS может составлять ~1000%: от 8–9 до 100–110 фпс. Это можно проверить на интерактивном онлайн-демо, позволяющем также поиграться с числом потоков, способом вычислений и формой фрактала.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии9

Особенности реализации STL в Clang, GCC и Microsoft С++

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

Любая программа состоит из данных и алгоритмов их обработки. Для написания программ на C++ в начале 90-х годов прошлого века Александр Степанов с коллегами разработал библиотеку STL. Я, Михаил Полукаров из команды разработки VK Teams, заглянул под капот этой библиотеки чтобы разобраться, как правильно ей пользоваться, в каких случаях лучше использовать другие библиотеки, а в каких стоит написать что-то своё. 

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

Читать далее
Всего голосов 57: ↑55 и ↓2+75
Комментарии12

Ошибки, которые не ловит Rust

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

Мне по-прежнему интересны языки программирования. Но сегодня уже не так сильно, и не из-за того, что они позволяют мне делать, а, скорее, из-за того, что они мне делать не позволяют.

В конечном итоге, возможности того, что можно сделать при помощи языка программирования, редко ограничены самим языком: нет ничего, что можно сделать на C++, но нельзя повторить на C, при наличии бесконечного количества времени.

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

На самом деле, достаточно лишь команды mov.

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

Кроме того, есть такие аспекты, как производительность, отладкопригодность (если такого слова нет, то его стоит придумать) и дюжина других факторов, которые стоит рассмотреть при «выборе языка».
Читать дальше →
Всего голосов 57: ↑53 и ↓4+66
Комментарии12

Мини-игра на Rust + macroquad

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

В данной статье я постараюсь подробно рассказать о том, как написать небольшую игру, используя в качестве инструментов язык программирования Rust и библиотеку macroquad.

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии8

Rust 1.60.0: покрытие на основе исходного кода, новый синтаксис условной компиляции в Cargo, инкрементальная компиляция

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

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


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


rustup update stable

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

Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии3

Rust 1.59.0: встроенный ассемблер, деструктурирующее присваивание, отключение инкрементальной компиляции

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

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

Читать далее
Всего голосов 34: ↑27 и ↓7+27
Комментарии9

Мониторинг веб-приложения на Rust с использованием Prometheus и Grafana

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

В статье показано как настроить мониторинг веб-приложения на Rust. Приложение выставляет наружу Prometheus метрики, которые визуализируются с помощью Grafana. Мониторинг осуществляется для проекта mongodb-redis demo, детально рассмотренного здесь. В итоге получена следующая архитектура:


architecture

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии10

RustCon Russia 2021: как прошла конференция, и о чем там говорили

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

RustCon Russia 2021: как прошла конференция, и что на ней обсуждали

Читать далее
Всего голосов 21: ↑15 и ↓6+15
Комментарии6

Vange-rs: взгляд на реализацию WebAssembly в Rust

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

Вангеры одна из самых почитаемых и технологичных игр своего времени, продолжает жить и развиваться. Благодаря сплоченному сообществу игра получила множество усовершенствований: HD, 60 FPS, новые сетевые режимы и много другое. Vange-rs один из интереснейших проектов по Вангерам. Это rust версия игры, основной изюминкой которой является 3D рендер основанный на wgpu.

Запустить в браузере
Всего голосов 25: ↑24 и ↓1+32
Комментарии14

Rust 1.57.0: константный panic!, пользовательские профили в Cargo и обработка ошибок выделения памяти

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

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


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


rustup update stable

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


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


Rust 1.57 привносит panic! в константные контексты, добавляет поддержку настраиваемых профилей в Cargo и стабилизирует API, позволяющие обработать ошибки резервирования памяти.

Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии0

Мультиплеерная игра на Rust + gRPC со спектатор модом. Часть 2

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

В этой заметке мы продолжим создавать мультиплеерный пинг понг на rust.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии7

Мультиплеерная игра на Rust + gRPC со спектатор модом

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

Rust и gRPC. Все это вкупе с простым игровым движком. Небольшой туториал по разработке мультиплеерной игры.

Читать далее
Всего голосов 32: ↑32 и ↓0+32
Комментарии5

Создание и использование динамических библиотек в Rust

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

Динамические библиотеки подключаются к программе во время выполнения. Это позволяет обновлять их реализацию и компилировать независимо от использующих программ. Такой подход открывает ряд дополнительных возможностей при разработке ПО. Например, написание разных модулей приложения на разных языках. Или создание системы динамически подключаемых плагинов. В данной статье мы рассмотрим, как создавать и загружать динамические библиотеки в Rust.

Читать далее
Всего голосов 34: ↑34 и ↓0+34
Комментарии0

Выпуск Rust 1.56.0 и 2021 редакция

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

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


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


rustup update stable

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

Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии11

Как Rust-разработчики делают Веб безопаснее

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

Язык программирования Rust упрощает разработку более безопасного программного обеспечения. Что ещё предстоит делать?

Читать далее
Всего голосов 15: ↑9 и ↓6+7
Комментарии112

RustCon Contest 2021 — соревнование для тех, кто пишет на Rust и тех, кто только к нему подступается

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

В прошлой статье мы писали, что давно пора снова собрать русскоязычное сообщество rust-разработчиков, и поэтому в декабре проведем RustCon Russia. Так вот, при подготовке конференции мы поняли, что есть два разных сегмента тех, кому интересен Rust. Первые — это те, кто уже пишут на нем. Вторые - те, кто только начал изучать или подумывает об этом. Питонисты, плюсеры, рубисты - все, кто понял, что у раста есть очень крутые преимущества, и пора бы изучить их подробнее.

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

Читать далее
Всего голосов 17: ↑15 и ↓2+21
Комментарии4
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность