Rust- все статьи тега


Кто на свете всех сильнее - Java, Go и Rust в сравнении

(adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-1591034030238691", enable_page_level_ads: true }); (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-1591034030238691", enable_page_level_ads: true }); Мне показалось интересны...

Использование строк в Rust

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

Изучаем WebAssembly с помощью Rust

Внимание: с этой статьёй вы не освоите Rust, зато сможете быстро разобраться и приступить к работе с WASM, используя замечательный инструментарий wasm-pack и интуитивно понятную экосистему Rust. Недавно я начал интересоваться Rust. Вы спросите: как я дошёл до жизни такой? В какой-то момент вокруг WASM (Web Assembly) возникла шумиха, ажиотаж, и я в...

Rust и разработка кроссплатформенных решений для мобильных устройств

Недавно я начал изучать Android и iOS на предмет возможности обмена между ними бизнес-логикой. Этот поиск привёл меня к Rust — очень интересному и относительно новому языку программирования. Поэтому я решил попробовать его. Что такое Rust? Два самых важных момента, которые я нашёл в документации: Rust невероятно быстр и экономичен в использов...

Функциональные возможности систем типов Julia и Rust

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

Кросс-компиляция программ Rust для запуска на маршрутизаторе

Вы никогда не задумывались о том, чтобы запустить на домашнем роутере какой-нибудь пакет Ubuntu? Для этого можно было бы использовать контейнеры LXC. Всё это легко настроить, но такая установка будет не очень эффективной: зачем устанавливать целый дистрибутив Linux на маршрутизатор ради маленьких программ, используемых в домашней автоматизации? В к...

Parcel + Rust и WASM = идеальный ромком

Введение Мне уже давно хотелось попробовать использовать Rust и WASM вместе. Причин для этого была масса: небольшой размер пакета, низкоуровневый доступ с надёжной производительностью и все те преимущества, которые идут в комплекте с Rust (сильная типобезопасность, абстракции с нулевой стоимостью и т. д.). Так что, когда я оказался свободен на пар...

Использование SQLite с Rust и Actix Web (с тестами)

В этой статье мы рассмотрим, как использовать SQLite (вместе с Diesel) и Rust как в файловом режиме, так и в режиме памяти. Необходимые условия Кроме Rust и Diesel CLI, понадобится установить SQLite для вашей платформы: # Linux $ sudo apt install sqlite3 libsqlite3-0 libsqlite3-dev # OSX $ brew install sqlite3 Создаём проект (коммит) $ cargo new...

Actix или Rocket? Сравнение двух мощных платформ для веб-приложений на Rust

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

Rust для разработчиков JS

Rust не вызвал у меня большого интереса, когда я впервые прочитал о нём. Это было около двух лет назад. Я работал веб-разработчиком, программировал в основном на JavaScript и подумал тогда, что Rust не для меня, потому что в тот момент он казался мне очень сложным. А в начале этого года я решил начать изучать его. Что изменилось за это время? Я вс...

Rust: работа с потоками

Жил я себе поживал раньше без забот и без хлопот в однопоточной счастливой стране JavaScript, где имел дело с потоками разве что при взаимодействии между веб-сайтом и расширением для Chrome. Поэтому, когда кто-то заводил разговор о трудностях параллелизма и конкурентности, я никогда по-настоящему не понимал, из-за чего весь сыр-бор. Я начал изучат...

Тестирование клиент-серверов на Rust для IoT

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

Считаете, что Python лучше всех? Просто вы не имели дело с Rust

“Технологии прошлого спасут будущее от себя самого”, — так Грэйдон Хор, создатель Rust, пояснял, чего хотел достичь. Одна их ключевых черт Rust — использование технологий, хорошо знакомых академической среде, но редко применяемых в современных языках программирования. Старые, надёжные и иногда забытые технологии, но, прежде всего, крайне хорошо ра...

Сравнение Go и Rust через написание CLI-инструмента

В этой статье я описал свой увлекательный опыт создания небольшого CLI-приложения на двух малознакомых мне языках — Go и Rust. Если вы предпочитаете сразу перейти к самому коду и самостоятельно сравнить эти два варианта, то можете найти их по следующим ссылкам: Go и Rust. О проекте У меня есть собственный проект под названием Hashtrack, который яв...

Как спроектировать REST API для выполнения системных команд с помощью Actix Rust

Привет! Сегодня я расскажу, как создать REST API для выполнения системных команд на вашем сервере с помощью метода, которым пользуются известные компании.  Представьте, что вы переместили свою базу данных на другой сервер, отличный от вашего внутреннего сервера, и хотите теперь управлять сервером баз данных через внутренний API. Для этого нуж...

Замыкания в Rust

В Rust можно создавать не только именованные функции, но и анонимные, которые называются замыканиями. Сами по себе они не так уж интересны, пока вы не объединяете их с функциями, которые принимают замыкания в качестве аргументов. Вот где реальная мощь! Давайте создадим замыкание: let add_one = |x| { 1 + x }; println!("The sum of 5 plus 1 is {}.",...

Диагностика кода на Rust

Отладка кода на Rust  —  дело непростое. Может быть, она и возможна, но здесь и близко нет таких инструментов, которые позволяют осуществлять её в Java или C# отчасти потому, что внутри последних есть виртуальные машины. Трассировка тесно связана с отладкой, но знак равенства между ними ставить всё-таки нельзя. Она позволяет программисту увидеть, ...