Date | Title | Description |
31.10.2024 | Асинхронный Rust в трех частях. Часть третья: IO | Асинхронный Rust в трех частях
Введение
Часть первая: Futures
Часть вторая: Tasks
Часть третья: IO
Конечно, async/await были придуманы не для сна. Нашей целью с самого начала был ввод‑вывод (I/O), а в особенности сетевой ввод‑вывод. Вооружи... |
28.10.2024 | Асинхронный Rust в трех частях. Часть вторая: Tasks | Асинхронный Rust в трех частях
Введение
Часть первая: Futures
Часть вторая: Tasks
Часть третья: IO
Во введении мы сказали, что async/await это про futures и задачи. В первой части мы рассмотрели futures и теперь пришло время задач. Благо, м... |
26.10.2024 | The Asynchronous Revolution in Rust: Understanding Futures and Tasks | Asynchronous programming is like a dance. It allows multiple tasks to move in harmony without stepping on each other's toes. In Rust, this dance is orchestrated through the use of futures and tasks, which enable developers to write efficien... |
25.10.2024 | Асинхронный Rust. Часть первая: Futures | Асинхронный Rust в трех частях
Введение
Часть первая: Futures
Часть вторая: Задачи
Часть третья: IO
Во введении мы посмотрели на пример асинхронного Rust без какого‑либо объяснения, как он работает. Это дало нам несколько вопросов для размы... |
24.10.2024 | Пошаговое повышение производительности алгоритма | Недавно мне довелось работать над новым алгоритмом приближённого поиска ближайших соседей, который называется RaBitQ. Автор этого алгоритма уже предоставил достаточно скоростную реализацию на C++. Я попытался переписать этот алгоритм на Rus... |
18.10.2024 | Как написать D-Bus сервис, работающий на системной шине, на Rust | Привет, Хабр! На связи Федотов Максим, ведущий разработчик в "Открытой Мобильной Платформе". В этой статье я хочу поделится нашим опытом создания D-Bus-сервиса на Rust, который работает на системной шине.
Если Вы только недавно на... |
25.09.2024 | Создаём быстрые gRPC-сервисы с Tonic и Rust | Привет, Хабр!
Сегодня посмотрим, как с помощью фреймворка Tonic и языка Rust создавать gRPC-сервисы для задач машинного обучения. Если в вашем проекте нужно максимально эффективно строить распределённые системы, а производительность и асинх... |
15.09.2024 | Портируем декодер AV1 с С на Rust для повышения быстродействия и безопасности | AV1 становится всё более значимым видеоформатом, которому требуется безопасный и производительный декодер. Исходя из этой идеи, мы в тандеме с командой из Immutant создали rav1d, портировав на Rust написанный на С декодер dav1d. Перед вами ... |
09.09.2024 | The WebP Compression Conundrum: A Dive into Efficiency and Accessibility | In the digital age, speed is king. Websites must load quickly to keep users engaged. But how do we achieve that? Enter WebP, a modern image format that promises to compress images without sacrificing quality. It’s like a magician pulling a ... |
08.09.2024 | WebP — формат сжатия веб-страниц | Я хочу, чтобы посетители моего сайта наслаждались им, так что я забочусь об accessibility и проверяю, что даже без JavaScript тут есть, на что смотреть. Я забочусь о том, насколько быстро грузятся страницы, ведь на некоторых из них есть бол... |
04.09.2024 | Магическая система типов Rust | if !is_valid_email(&form.email) || !is_valid_password(&form.password) { return HttpResponse::BadRequest().finish(); }
Этот код — кусок дерьма; кошмар, который вот-вот случится. Чтобы понять, почему и как это исправить, сначала нужно... |
02.09.2024 | Фреймворки для работа с данными на Rust. Часть 1 | Привет, Хабр!
Если бы мне сказали, что я однажды заменю привычный Python или Scala для работы с данными на Rust, я бы, пожалуй, ухмыльнулся и продолжил привычное дело. Но времена меняются, и Rust вполне уверенно пробивает себе дорогу в мир ... |
01.09.2024 | The Power of Middleware in Rust: A Deep Dive into Tower and Actix Web | In the world of web development, middleware acts as the unsung hero. It quietly processes requests and responses, adding functionality without disrupting the core application. Two prominent frameworks in Rust, Tower and Actix Web, showcase ... |
01.09.2024 | Navigating the Data Landscape: A Journey from PostgreSQL to ClickHouse | In the fast-paced world of data engineering, the choice of database can make or break a project. This is a tale of a small team that embarked on a significant migration journey. They transitioned from PostgreSQL to ClickHouse, seeking speed... |
31.08.2024 | Воспроизводим гитарные табулатуры на Rust
Ruxguitar
Парсинг табулатуры
Создание UI
Издаём звуки
Соединяем всё вместе
Работа на будущее
Заключение... | Если вы когда-нибудь пробовали учиться гитаре, то есть вероятность, что вы знакомы с гитарными табулатурами.
Это простой способ визуализации музыки для гитары, альтернативный нотам, при котором символами ASCII обозначаются струны и лады.
На... |
28.08.2024 | Продолжаем работать с Actix Web (часть 1) | Привет, сегодня я продолжу свою статью и покажу реальный пример приложения на Actix web.
Немного лирики для начала.
Я буду писать, используя raw sql с помощью библиотеки sqlx, базой данных послужит Postgresql.
Сервисом будет примитивный мес... |
28.08.2024 | Начало работы с Actix Web | Привет, сегодня я попытаюсь объяснить все то, что я хотел бы знать в начале пути разработки на Actix Web.
Немного лирики для начала.
Rust - мультипарадигменный компилируемый язык программирования общего назначения, разрабатываемый Mozilla. ... |
27.08.2024 | Tower — библиотека для асинхронных middleware | Привет, Хабр! Ведущий системный программист компании "Криптонит" Михаил Доронин поделился опытом написания промежуточного ПО — middleware. Оно часто используется в веб-разработке. Например, веб-сервер может использовать middleware... |
25.08.2024 | Как я ускорила парсинг строк в serde_json на 20% | Недавно я писала код, завязанный на производительность, и поняла, что рассказы про мой опыт могут быть захватывающим чтивом. Учить как думать так же важно, как и учить писать код, но делают так редко, и мне кажется, что то, на что я угрохал... |
23.08.2024 | XML-RPC: вызываем все, везде и сразу | У нас было пятьдесят операционных систем, десяток языков программирования и бесконечное множество библиотек и фреймворков всех сортов и расцветок, а также кофе, немного времени и щепотка здравого смысла. Не то чтобы это был необходимый запа... |
09.08.2024 | Вскрываем средства для DDoS-атак на российскую ИТ-инфраструктуру. Часть вторая | Введение
По разным источникам, в 2023 году было зафиксировано несколько миллионов DDoS-атак на российские информационные системы. И судя по статистике, их количество только растёт. В связи с этим, а также по многочисленным просьбам коллег м... |
02.08.2024 | Программируем микроконтроллер STM32 на Rust | Rust — отличный язык, но насколько он подходит для разработки встраиваемых систем? В этом посте будет подробно рассказано, как обустроить инструментарий для такой разработки. Кроме того, мы рассмотрим один удивительный аспект Rust, проявляю... |
10.07.2024 | Как правильно тестировать конкурентные структуры данных | Есть потрясающая библиотека Rust под названием loom, которую можно использовать для тщательного тестирования неблокируемых (lock-free) структур данных. Я давно хотел разобраться, как она работает. И сейчас хочу! Но недавно я случайно реализ... |
29.06.2024 | Жизнь – боль: как одновременно поддерживать в Rust синхронный и асинхронный код | Введение
Присаживайтесь поудобнее и послушайте стариковскую байку: что случилось, когда я попросил у Rust слишком многого.
Допустим, вы хотите написать на Rust новую библиотеку. Всё, что для этого требуется — обернуть её в публичный API, че... |
26.06.2024 | Учимся летать: симуляция эволюции на Rust. 4/5 | Это предпоследняя часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.
Первая часть
Вторая часть
Третья часть
В сегодняшнем выпуске:
Сексуальные многоугольники
Сертифицированные ISO диаграм... |
25.06.2024 | Создание парсеров на Rust | Привет, Хабр!
Представьте себе котика, который пытается понять синтаксис человеческого языка. Сначала он разглядывает слова, затем прислушивается к интонациям, а потом решает, что всё это слишком сложно, и отправляется ловить мышей.
Но благ... |
25.06.2024 | Lock-free структуры данных в Rust | Привет, Хабр! Сегодня поговорим о lock-free (или же без использования блокировок) структурах данных и атомарных операциях в Rust.
Каждый lock может стать узким местом, тормозящим всю систему. Базовые методы синхронизации, типо мьютексов и с... |
19.06.2024 | Учимся летать: симуляция эволюции на Rust. 3/5 | Это третья часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.
Первая часть
Вторая часть
В предыдущей статье мы реализовали простую FFNN (feedforward neural network — нейронная сеть прямог... |
12.06.2024 | Gabriel2 — Open Source асинхронная библиотека для модели Акторов на Rust с использованием Tokio | В целом мне очень нравится концепция Акторов в асинхронном программировании. Низкоуровневое программирование с использованием очередей сообщений и обработчиков сообщений не позволяет мыслить в терминах высокоуровневых абстракций. Акторы поз... |
09.06.2024 | Учимся летать: симуляция эволюции на Rust. 2/5 | Это вторая часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.
Первая часть
В этой статье мы заложим основы нашего проекта и реализуем простую FFNN (feedforward neural network — нейронная ... |
09.06.2024 | Рисуем фракталы на Rust и CUDA | Фракталы — это бесконечные самоподобные фигуры. Они определяются простыми математическими формулами, которые создают удивительную красоту!
В этой статье мы рассмотрим алгоритм визуализации одного из самых известных фракталов на языке Rust с... |
31.05.2024 | Сложно ли генерировать 1024-битные простые числа? | Простые числа удивительны!
С одной стороны, их легко объяснить: это просто числа, которые делятся только на единицу и на себя; с другой стороны, они содержат в себе бесконечную сложность. Они встречаются во множестве разных сфер, от математ... |
30.05.2024 | Почему я отказался от разработки игр на Rust, часть 4 | Часть 1
Часть 2
Часть 3Dynamic borrow checking вызывает неожиданные вылеты после рефакторинга
В процессе написания статьи я обнаружил ещё один случай вылета нашей игры из-за пересекающегося World::query_mut. Я работаю с hecs уже около двух ... |
29.05.2024 | Туториал по Tokio. 2/2
Кадрирование
Подробно об асинхронности
Выбор
Потоки | Hello world!
Представляю вашему вниманию вторую часть туториала по Tokio.
Первая часть
Tokio — это асинхронная среда выполнения (runtime) кода Rust. Она предоставляет строительные блоки, необходимые для разработки сетевых приложений любого ... |
21.05.2024 | Туториал по Tokio. 1/2
Обзор
Настройка
Привет, Tokio
Создание потоков
Общее состояние
Каналы
Ввод-вывод | Hello world!
Представляю вашему вниманию первую часть туториала по Tokio.
Tokio — это асинхронная среда выполнения (runtime) кода Rust. Она предоставляет строительные блоки, необходимые для разработки сетевых приложений любого размера.
Соде... |
13.05.2024 | Книга рецептов Rust. 2/2
10. Кодирование
11. Обработка ошибок
12. Файловая система
13. Разное
14. Операционная система
15. Обработка текста
16. Веб-разработка... | Hello world!
Книга рецептов — это коллекция простых примеров, демонстрирующих хорошие практики решения распространенных задач программирования с помощью крейтов экосистемы Rust.
Первая часть
Содержание
10. Кодирование
10.1. Наборы символов
... |
07.05.2024 | Книга рецептов Rust. 1/2
1. Алгоритмы
2. Командная строка
3. Сжатие
4. Параллелизм
5. Криптография
7. База данных
8. Дата и время
9. Инструменты для разработки... | Hello world!
Книга рецептов — это коллекция простых примеров, демонстрирующих хорошие практики решения распространенных задач программирования с помощью крейтов экосистемы Rust.
Содержание
1. Алгоритмы
1.1. Генерация произвольных значений
1... |
30.04.2024 | Почему я отказался от разработки игр на Rust, часть 1 | Предисловие: этот пост представляет собой очень длинный перечень мыслей и проблем, возникавших у меня за годы работы; также в нём рассматриваются некоторые из аргументов, которые мне часто говорили. В посте выражено моё мнение, сформировавш... |
26.04.2024 | Кратко про юнит-тесты в Rust | Привет!
Юнит-тесты позволяют предотвратить ошибки и значительно упростить процессы рефакторинга и поддержки кода. Их реализация существует во всех языках программирования и Rust - не исключение.
Юнит-тесты в Rust обычно располагаются в том ... |
10.04.2024 | Пишем калькулятор на Rust с GUI | Зачем еще один калькулятор? Да незачем, просто как тестовый проект для рассмотрения GUI-библиотеки.
Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не ... |
10.04.2024 | 9 полезных крейтов в Rust | Привет, Хабр!
Rust, как любимый многими разработчиками знаменит своей скоростью и безопасностью. Но его истинная сила заключается в экосистеме крейтов — библиотек и инструментов, которые могут превратить сложные и трудоёмкие задачи в удивит... |
02.04.2024 | Rust — это не «memory safe C» | TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность;
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD;
— Rust — не сложный язык, особенно если не гна... |
28.03.2024 | Практическое руководство по Rust. Бонус
Параллельный Rust
Асинхронный Rust | Hello world!
Представляю вашему вниманию бонусную часть практического руководства по Rust.
Первая часть
Вторая часть
Третья часть
Четвертая часть
Другой формат, который может показаться вам более удобным.
Руководство основано на Comprehensi... |
20.03.2024 | Практическое руководство по Rust. 4/4 | Hello world!
Представляю вашему вниманию четвертую и последнюю часть практического руководства по Rust.
Первая часть
Вторая часть
Третья часть
Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и ра... |
15.03.2024 | Охота на недостающий тип данных | Направленный граф — это набор узлов, связанных стрелками (рёбрами). Как узлы, так и рёбра могут содержать данные. Вот несколько примеров:
Все графы созданы с помощью graphviz (источник)
В сфере разработки ПО графы используются повсеместно:
... |
21.02.2024 | Практическое руководство по Rust. 2/4 | Hello world!
Представляю вашему вниманию вторую часть практического руководства по Rust.
Первая часть
Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владе... |
14.02.2024 | Начало работы с Axum — самым популярным веб-фреймворком Rust | Когда дело доходит до выбора серверного веб-фреймворка в экосистеме Rust, можно запутаться из-за большого количества вариантов. В прошлом, лидером по популярности был Rocket, но сейчас за первенство сражаются Axum и actix-web, и Axum все бо... |
31.01.2024 | Большая шпаргалка по Rust. 2/2
Организация кода
Обработка ошибок | Hello world!
Представляю вашему вниманию вторую часть большой шпаргалки по Rust.
Первая часть.
Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает ... |
02.12.2023 | std fs в Rust медленнее, чем Python? Нет, это аппаратный баг | В этой статье я поделюсь с вами долгой историей, которая начинается с op.read() opendal, а заканчивается неожиданным поворотом. Это путешествие оказалось для меня достаточно поучительным, надеюсь, и для вас оно будет таким же. Я постараюсь ... |
30.11.2023 | Разработчик выпустил инструмент на Rust для конвертации изображений в ASCII-графику | Разработчик Доминик Кодспоти (Dominic Codespoti) выпустил утилиту на Rust, предназначенную для конвертации изображений в ASCII-графику. Инструмент работает через терминал и позволяет настраивать размер рисунка.
Установить утилиту можно с по... |
17.11.2023 | Чем хорош Rust для продакшена? | За последние годы интерес к Rust значительно вырос. Отчасти этому способствовало то, что ведущие участники технологической индустрии, такие как Microsoft, Google и Amazon рассказали о своём опыте использования этого языка в реализации крити... |
11.11.2023 | Пишем интеграционные тесты для Actix Web | Модульные и Интеграционные тесты являются неотъемлемой частью жизни современного разработчика. И если с написанием простейших тестов описанных в различных обучающих статьях проблем обычно не возникает, то ситуация коренным образом меняется,... |
01.11.2023 | SQLx: raw SQL в Rust | Когда речь заходит об использовании SQL, экосистеме Rust есть что нам предложить: к счастью, нам доступны несколько отличных готовых к использованию решений. SQLx — это чисто асинхронный, независящий от рантайма SQL-крейт, позволяющий испол... |
27.10.2023 | Как в 180,000 раз ускорить анализ данных с помощью Rust | В этой статье я опишу одно из последних своих дерзновений в сфере оптимизации производительности с помощью Rust. Надеюсь, что в ней вы откроете для себя какие-то новые приёмы для написания быстрого кода на Rust.
Контекст следующий: представ... |
27.10.2023 | Конкурентный отказ | Любая задача может быть завершена несколькими способами:
Нормальное завершение, после которого мы получаем результат (например, Ничего/Единица).
Сообщение об ошибке.
Принудительное завершение, после которого программа может остаться в неопр... |
22.10.2023 | Тест производительности Web-фреймворков для Rust | В этой статье мы сравним производительность 3 наиболее популярных бекэнд-фреймворков для Rust: Axum, Actix и Rocket.Методика тестирования
На каждом из фреймворков мы напишем простой веб-сервис имеющий три эндпоинта:
POST /test/simple Приним... |
04.10.2023 | Неограниченный доступ к знаниям: библиотека Стандартных Шаблонных Конструкций | Есть много причин почему доступ научным статьям и книгам должен быть свободным:
Это прекрасно.
Знания меняют реальность в лучшую сторону. Вы хотите лечиться у врачей, которые в курсе последних достижений медицины? Летать на безопасных самол... |
29.09.2023 | Идиоматическая обработка ошибок в Rust | Вы забудете о необработанных исключениях, если научитесь обращаться с ошибками, как это принято в Rust
Обработка ошибок – важнейшая часть любого языка программирования, а в Rust предлагается для этого уникальный мощный подход. Rust, в отлич... |
05.08.2023 | Что такое формальная верификация | Это обзорная статья, в которой очень поверхностно и не подробно рассказывается о том, что такое формальная верификация программного кода, зачем она нужна и чем она отличается от аудита и тестирования.
Формальная верификация — это доказатель... |
28.07.2023 | Regex engine internals as a library. Part 4 | Содержание
Краткий экскурс
Проблемы
Проблема: сложная композиция
Проблема: сложность тестирования
Проблема: запрос на нишевые API
Проблема: полностью скомпилированные ДКА
По пути с regex-cli
Поток данных
Литеральные оптимизации
Мотивация ли... |
23.07.2023 | Regex engine internals as a library. Part 3 | Содержание
Краткий экскурс
Проблемы
Проблема: сложная композиция
Проблема: сложность тестирования
Проблема: запрос на нишевые API
Проблема: полностью скомпилированные ДКА
По пути с regex-cli
Поток данных
Литеральные оптимизации
Мотивация ли... |
19.07.2023 | Regex engine internals as a library. Part 2 | Содержание
Краткий экскурс
Проблемы
Проблема: сложная композиция
Проблема: сложность тестирования
Проблема: запрос на нишевые API
Проблема: полностью скомпилированные ДКА
Следуй с regex-cli
Поток данных
Литеральные оптимизации
Мотивация лит... |
17.07.2023 | Криптография на Rust и немного FFI | Частичный перевод моей статьи с Medium
Начнем с того, что эта статья как и большинство моих статей родилась в процессе разработки. В данном конкретном случае - разработки внешней крипто-библиотеки для генерации крипто-кошельков.
Да, определ... |
16.07.2023 | Regex engine internals as a library. Part 1 | На протяжении последних нескольких лет, я переписывал крейт regex, чтобы лучше задействовать внутреннюю композицию, и сделать её проще для добавления оптимизаций, управляя корректностью. На пути этого переписывания я создал новый крейт rege... |
05.07.2023 | Создание своей библиотеки на Rust: от cargo init до cargo publish | Вступление
Приветствую, растиане, сегодня мы поговорим о сборке и публикации собственного крейта на crates.io.
Rust - open-source язык программирования, благодаря чему каждый может внести свой вклад в его развитие разными способами. Одним и... |
11.06.2023 | Rust моей мечты — несостоявшийся язык | В одном недавнем подкасте о том, кто сейчас главный в Rust, вновь всплыл вопрос о том, кому быть BDFL (великодушным пожизненным диктатором), и Джереми Соллер сказал (это был чемпионский заход на приз «за преуменьшение века»): «Я считаю, Гре... |
10.05.2023 | RSync на стероидах с поддержкой Windows | На Хабре периодически рассказывают о новых инструментах для синхронизации данных. Это интересная тема. Такие программы используются:
для синхронизации файлов на разных устройствах,
дедупликации,
резервного копирования,
сжатия.
Малейшая опти... |
05.05.2023 | Дополнить Rust-библиотеку примерами? Легко | Когда вы пишете библиотеку, которая в дальнейшем будет задействована во множестве других проектов, крайне важно продумать, как именно разработчики будут работать с ней своем коде.
Один из лучших способов позаботиться о том, чтобы работа с в... |
05.05.2023 | 32 полезных Rust крейта, о которых вы могли не знать | В этой статье хочу поделиться информацией о крейтах для языка rust, про которые вы могли не знать. Большинство из них позволяют писать меньше шаблонного кода или улучшают его читаемость. Эта статья будет полезна для разработчиков всех уровн... |
19.03.2023 | Использовать unwrap() в Rust — это нормально | Предисловие
Сравнительно недавно на Хабре была опубликована статья «Rust: ни в коем случае не используйте unwrap() в продакшене». Мягко говоря, тезисы, высказываемые в данной статье, спорны и содержат мало обоснования. Предлагаю читателям в... |
15.03.2023 | Язык программирования Rust: безопасность, производительность и преимущества | Язык программирования Rust был разработан компанией Mozilla и впервые представлен в 2010 году. Он считается одним из самых безопасных и производительных языков программирования на сегодняшний день. В данной статье мы рассмотрим основные пре... |
15.03.2023 | Пишем простой калькулятор используя фреймворк eframe (egui) | Всем здравствуйте. Ниже будет приведен пример написания PWA приложения готового для использования как в браузере, так и на компьютере с ОС Windows. Использовать будем язык программирования Rust и фреймворк eframe (egui). Готовое приложение ... |
13.03.2023 | Rust 1.68.0: разреженный протокол cargo, локальный pin, обработчик ошибок аллокации | Команда Rust рада сообщить о новой версии языка — 1.68.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup, то... |
28.02.2023 | Расширяем PostgreSQL с помощью Rust | Свободная система управления базами данных PostgreSQL не только предоставляет высокопроизводительный движок для выполнения запросов, но и может быть расширена с помощью расширений, которые могут добавлять новые типы данных (например, для ГИ... |
18.02.2023 | Solana смарт-контракты на Rust для самых маленьких | Program
Начнем с определения того, что такое "Solana program" - именно так в блокчейне обозначаются смарт-контракты. Это исполняемый код интерпретирующий проходящие через него инструкции, которые в свою очередь являются частью люб... |
05.02.2023 | Концепции Rust, которые неплохо бы знать пораньше | Весь минувший месяц я глаз не мог оторвать от языка программирования Rust, ведь его конёк – создание современных программ, обеспечивающих безопасную работу с памятью. За прошедшие годы появилось несколько языков, которые позиционировались к... |
04.02.2023 | Git scraping: методика бесплатного хостинга не совсем статических сайтов | Ни для кого не секрет, что, используя GitHub Pages, вы можете бесплатно разместить свой статический веб-сайт в сети Интернет. 1 Гбайт доступного пространства, SSL-сертификат, возможность привязать собственный домен — разве не сказка? Но что... |
11.01.2023 | Пишем Discord бота крестики-нолики | Вы когда-нибудь хотели создать свой бот для игры в крестики-нолики в Discord? Так ещё при помощи 🚀blazingly fast🚀Rust и крейта serenity! Всех заинтересовавшихся прошу под кат.Небольшое предисловие
Пытаясь создать Discord сервер и бота к нем... |
18.12.2022 | Пишем телеграм-бота на Rust, предварительно спаяв сетевую карту | Всем привет. В прошлом году я писал про то, как я сделал компьютер на дискретных логических микросхемах. После того, как были сделаны процессор, видеокарта, интерфейсы клавиатуры и SD-карты, оставалось два классических модуля, которые есть ... |
11.12.2022 | Пишем обобщённую хеш-таблицу с открытой адресацией на чистом C | В программировании достаточно распространена задача хранения данных в ассоциативных контейнерах. В этом случае мы ставим в соответствие некоторым ключам некоторые значения. При этом мы бы хотели иметь возможность более-менее быстро запрашив... |
09.11.2022 | Работа с графикой на языке Rust. Часть 2 | В этой статье я продолжу перевод и исследование WGPU, библиотеки языка Rust для работы с графикой.
Для тех, кто не читал первую статью небольшая вводная информация.
WGPU реализует современный стандарт работы с видео подсистемами — WebGPU и ... |
27.10.2022 | Rust'ерзание краба. Пробуем реверсить Rust удобно | Вступление
Rust как язык программирования только набирает обороты и находит своих почитателей. Он не только предлагает множество надстроек для безопасности кода, но с недавнего времени еще и появился в ядре Linux.
В этой статье мы посмотрим... |
28.09.2022 | Работа с графикой на языке Rust | Всем привет! Меня зовут Саша и я backend разработчик. Нет, не на rust. Но раст мой любимый язык и недавно я задался целью портировать движок онлайн игры, написанный на C++. Первый месяц ушел на то, чтобы разобраться с бинарными ассетами, их... |
26.09.2022 | Децентрализованный поиск для свободного веба | Возможно ли создать поисковую систему, которую на практике нельзя подвергнуть цензуре, влиянию и блокировке?
Говоря техническим языком, возможно ли выполнять полнотекстовый поиск не имея удаленного сервера, удобным для пользователя способом... |
19.08.2022 | Знакомимся с дата-ориентированным проектированием на примере Rust | James McMurray
В этом посте мы исследуем основные концепции «Data-Oriented Design» (далее «дата-ориентированное проектирование» на языке Rust.
Весь исходный код для этого поста выложен на Github.
Что такое дата-ориентированное проектировани... |
18.08.2022 | Для подписи приложений iOS/macOS не нужен компьютер Apple | В экосистеме Apple сейчас так устроено, что для выпуска приложений iOS/macOS требуется получение сертификата, затем подпись кода и нотаризация подписи. Согласно документации, подпись кода гарантирует пользователям, что приложение получено и... |
09.05.2022 | StbSharp: история ненужного проекта | Введение.
В этой статье я бы хотел рассказать о своем хобби проекте под названием StbSharp.
Итак, в 2016 году мне пришла в голову весьма банальная идея - сделать собственный игровой кросс-платформенный движок на C#. И я озаботился поиском к... |
25.04.2022 | Знакомство со стековыми графами | В декабре 2021 года Github объявил, что открывает общий доступ к точной навигации по коду для всех публичных и приватных репозиториев с Python на сайте GitHub.com. Точную навигацию в коде обеспечивают стековые графы, новый фреймвввооорк с о... |
28.03.2022 | Пожалуйста, прекратите писать shell-скрипты | Когда вы автоматизируете какую-либо задачу, например, упаковываете свое приложение для Docker, то часто сталкиваетесь с написанием shell-скриптов. У вас может быть bash-скрипт для управления процессом упаковки и другой скрипт в качестве точ... |
01.02.2022 | Как одной строкой сделать 24-ядерный сервер медленнее ноутбука | Лучше учиться на чужих ошибках, поэтому мы в М.Видео-Эльдорадо стремимся изучать зарубежный опыт. Предлагаем и вам посмотреть перевод статьи Петра Колачковского, получившего черный пояс по прокачке производительности своего железа.
Представ... |
12.01.2022 | Мониторинг веб-приложения на Rust с использованием Prometheus и Grafana | В статье показано как настроить мониторинг веб-приложения на Rust. Приложение выставляет наружу Prometheus метрики, которые визуализируются с помощью Grafana. Мониторинг осуществляется для проекта mongodb-redis demo, детально рассмотренного... |
29.10.2021 | Почему сооснователь Wasmer ушёл из компании? | 4 октября 2021 года — последний день работы одного из основателей Wasmer в компании. Wasmer — стартап, который разрабатывает очень популярную одноимённую среду выполнения WebAssembly. Речь пойдёт о том, чего автору статьи удалось достичь за... |
06.10.2021 | Прокачиваем силу — Rust и Windows API | Недавно я написал статью Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад. В статье рассказывается о том, как изучать ассемблер на примере игрушки 2048. Возможно для целей самой статьи игрушка была подходящая, но... |
11.09.2021 | Я не чувствую давления async | Async в моде. Async Python, Async Rust, Go, Node, .NET и т.д. Выбирайте свою любимую экосистему, и в ней будет свой модуль для асинхронности. Насколько хорошо работает вся эта асинхронная история, во многом зависит от экосистемы и среды вып... |
21.07.2021 | Начало работы с MongoDB и Redis на Rust | В этой статье будет показано как создать Rust бэкэнд, который использует MongoDB, документо-ориентированную БД, для хранения данных и Redis для кэширования, ограничения количества HTTP запросов и нотификаций пользователя. Для большей нагляд... |
- | Какие изменения нужны языку Rust, чтобы писать асинхронный код стало проще
Светлое будущее
Время действовать | Асинхронное программирование — мощный инструмент. Но экосистема Rust продолжает активно развиваться, и пока язык далёк от идеала. В частности, по этой причине многие считают, что асинхронное программирование в Rust — это боль. Однако некото... |
- | Используем клиентский процессор по максимуму. Часть 1: Rust + WebAssembly | На Хабре существует немало статей, посвящённых повышению производительности программ за счёт параллельных вычислений и использования векторных команд. Я решил дополнить этот список и рассказать о том, как можно оптимально задействовать все ... |
- | Консольный UI и отказ от асинхронного кода в idewave-cli | С выходом версии 1.0.1 я решил осветить некоторые аспекты технической стороны моего проекта. В этой статье я расскажу про использование библиотеки tui-rs и про нюансы использования библиотеки tokio-rs, а так же постараюсь рассказать, что же... |