Как стать автором
Обновить
28.38

Rust *

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

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

Практическое руководство по Rust. 1/4

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



Hello world!


Представляю вашему вниманию первую часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Всего голосов 24: ↑19 и ↓5+22
Комментарии12

Trait-объекты и полиморфизм в Rust

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

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

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

Один из способов, с помощью которого Rust достигает полиформизма, - использование Trait-объектов.

Читать далее
Всего голосов 17: ↑13 и ↓4+11
Комментарии22

Основы Rust: синтаксис и структуры данных

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

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

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

В этой статье рассмотрим основы Rust. Статья будет полезна тем, кто только начинает своё знакомство с языком.

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

Большая шпаргалка по Rust. 2/2

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



Hello world!


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


Первая часть.


Другой формат, который может показаться вам более удобным.


Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает кодить 😉


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

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

Истории

Управление зависимостями в Rust с Cargo

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

Привет!

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

В этатье рассмотрим что такое Cargo и как с ним работать.

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

Как реализовывается WebAssembly в Rust: кратко

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

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

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

з.ы: предполагается, что читатель знает основы webassembly и про что-то из rust

Читать далее
Всего голосов 14: ↑12 и ↓2+11
Комментарии1

Передавать пустые срезы между Rust и C/C++ на удивление сложно

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

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

В общих чертах она выглядит так:

  • В правила работы с указателями и memcpy в С не заложены грамотные способы представления пустого среза памяти.
  • В С++ с правилами указателей проблем нет, но поведение memcpy здесь аналогично её поведению в С.
  • Интерфейс внешних функций (Foreign Function Interface, FFI) в Rust не лишён накладных издержек. Rust использует несовместимое с C/C++ представление срезов, требуя их преобразования при передаче в обоих направлениях. При этом о преобразовании очень легко забыть.
  • Срезы в Rust также несовместимы с арифметикой указателей, что создаёт проблемы в работе итератора срезов стандартной библиотеки. (Обновление от 2024-01-16: похоже, над этой проблемой работают).

Поскольку проблемы FFI касаются нескольких языков, я писал статью в качестве общей справки, описывающей их несогласованность.
Читать дальше →
Всего голосов 42: ↑37 и ↓5+54
Комментарии53

Делаем двоичные файлы Rust меньше по умолчанию

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

Вы когда-нибудь пробовали компилировать program helloworld на Rust в режиме --release? Если да, то видели, какой размер двоичного файла получается? Достаточно сказать, что он не очень маленький. Или, по крайней мере, не был таким до недавнего времени. В этом посте я расскажу, как узнал об этой проблеме и попытался устранить её в Cargo.

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

Основы многопоточности в Rust

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

Привет!

Думаю, уже всем известно, что многопоточность – это мастхев для большинства приложений.

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

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

«Once you go Rust, you never go back»: создаем игру для программистов на Bevy

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

Привет, Хабр! В прошлой статье я рассказал о своем переходе в геймдев и моей концепции «хакерской» игры. Здесь же сосредоточился именно на разработке, а также на инструментах Bevy и Rust, которые использовал для игрового движка. Интересно узнать из первых уст, как создаются отечественные инди-игры? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+43
Комментарии21

Как работает управление памятью в Rust без сборщика мусора

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

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

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

Арифметика первого класса в системе типов Rust

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

Арифметика – наука непростая, но к нашему удобству работу с ней можно облегчить с помощью экспрессивной системы типов языка Rust. В статье мы разберём реализацию на этом языке простейших математических операций, таких как сложение, вычитание, умножение и деление.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+58
Комментарии7

Делаем разработку на Rust еще более потной с помощью git

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

Rust же создавали, чтобы держать программиста в ежовых рукавицах? Так почему бы не заставить git скооперироваться с Rust и не издеваться над программистом на пару?

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

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

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

Большая шпаргалка по Rust. 1/2

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



Hello world!


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


Вторая часть.


Другой формат, который может показаться вам более удобным.


Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает кодить 😉


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

Читать дальше →
Всего голосов 37: ↑35 и ↓2+43
Комментарии5

In RISC-V Rust

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

Превращаем простой пример распознавания нот из лабораторных работ Школы синтеза цифровых схем в Enterprise. Используем компилятор Rust для RISC-V микроконтроллера YRV-Plus.

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

Как я наконец осуществил мечту заняться разработкой игр

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

Начало 2024 года. У меня на руках демка игры, над которой я работал последние полгода. Ещё год назад я занимался разработкой мобильных приложений и сидел на хорошей зарплате, а сейчас я безработный инди-разработчик! Но как так вышло?

Читать далее
Всего голосов 45: ↑43 и ↓2+48
Комментарии29

Rust хорош

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

Как известно, html-разработчики скучают по многопоточке. Читая на днях шикарную книгу Mara Bos oб "атомиках и локах", наткнулся на упоминание одного интересного языка программирования: rust lang. Согласно интернетам, learning curve раста стремится к бесконечности, но для многопоточного программирования выбор кажется нормуль. Тут вопрос - можно и, главное, удобно ли юзать раст для бизнес-логики (ну то есть для продакшна).

Краткое содержание: макросы, компилятор-враг, компилятор-друг, unsafe и miri, многопоточка, options, iters, match.

Будем честны, фичи тестировались на учебном проекте, но как бывает со всеми пет прожектами (учебными проектами), переписывались они десятки раз.

Читать далее
Всего голосов 45: ↑22 и ↓23+4
Комментарии15

Управление памятью и разделяемыми ресурсами без ошибок

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


Мельком пробежал статью Синхронизация операций в .NET на примерах / Хабр, после чего захотелось поделиться с пользователями Хабра некоторыми мыслями насчет синхронизации доступа к объектам в различных языках программирования.


Если честно, то большая часть моей статьи уже давно лежала в черновиках, но все не доходили руки её доработать, а тут такой хороший повод поделиться своими размышлениями на эту тему, оставалось просто дописать эту вводную часть :-)

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

Rust 1.75.0: API адресной арифметики, async fn и impl Trait в трейтах, уcкорение rustc

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

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


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


rustup update stable

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


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

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

Да кто такой этот ваш impl Trait

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

В преддверии выхода Rust 1.75.0, наполненным async trait-ами и return-position impl Trait in trait, надо разобраться, что такое impl Trait и с чем его едят.

После прочтения статьи вы сможете битбоксить с помощью новых акронимов понимать, что за наборы символов RPIT, RPITIT и т.д. используют в Rust сообществе.

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