Все потоки
Поиск
Написать публикацию
Обновить
46.05

Rust *

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

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

Rust глазами Python-разработчика #2

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

Снова привет!

Мы – @cbmw и @AndreyErmilov, часть команды разработки «Рамблер/Медиа» (портал «Рамблер»). И это вторая часть наших размышлений по поводу сравнения Python и Rust (первая часть).
В этой части мы затронем многопоточность, асинхронность, функциональную парадигму и попробуем сделать некоторые заключения, которые мы для себя определили.

Читать далее

Операционная система Redox 0.6, написанная на Rust: что нового в выпуске?

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

Спустя полтора года разработки авторы операционной системы Redox 0.6, написанной с использованием языка Rust, опубликовали новый выпуск. Новинку можно протестировать — для этого в сеть выложены загрузочные образы. Их объем составляет 61 МБ. Свежая версия может тестироваться уже на обычном «железе», а не в QEMU и VirtualBox.

Операционная система распространяется под свободной лицензией MIT. Что нового в версии 0.6?
Читать дальше →

Rust глазами Python-разработчика

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


Привет! Мы – часть команды разработки «Рамблер/Медиа» (портал «Рамблер»). На протяжении трех лет мы поддерживаем и развиваем несколько больших python-приложений. Чуть больше года назад перед нами встала задача написать еще одно большое приложение – API к основному хранилищу новостей, и мы сделали это на Rust.


В статье мы расскажем о том, что заставило нас отойти от привычного стека технологий, и покажем, какие плюсы по сравнению с Python есть у Rust.


Мы не ответим на вопрос, почему выбор пал именно на Rust, а не Go, например, или на какой-либо другой язык. Также мы не будем сравнивать производительность Python- и Rust-приложений – эти темы достойны отдельного обсуждения.

Rust crashcourse. Итераторы

Время на прочтение12 мин
Количество просмотров5.1K
Ниже представлен перевод одной из частей серии статей Rust Crash Course от Майкла Сноймана, которая посвящена итераторам. Мне материал показался удачным в плане доступности изложения, поэтому перевод, сделанный для себя, решил опубликовать. Надеюсь, что это кому-то пригодится. Если данный материал будет интересен, то опубликую ещё несколько переводов из этой серии.

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

Коллектор логов на старом железе или встречайте Vector 32bit

Время на прочтение5 мин
Количество просмотров6K
В любой большой компании, и X5 не исключение, имеется «старое железо» которое успешно работает и работает хорошо, но приходит время и с него тоже необходимо начать забирать логи и метрики. В нашем случае это машины c x86_32 Debian 9.5 и 512Мб оперативной памяти.
Читать дальше →

Обнаружение лиц в Node.js с использованием Rust и WebAssembly

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

В последней статье мы рассказывали, как вызывать функции Rust из Node.js. Сегодня мы расскажем, как написать приложение AIaaS (англ. Artificial Intelligence as a Service — «искусственный интеллект как услуга») на базе Node.js.

Большинство приложений с искусственным интеллектом сейчас разрабатываются на языке Python, а главным языком программирования для веб-разработки является JavaScript. Для того чтобы реализовать возможности ИИ в вебе, нужно обернуть алгоритмы ИИ в JavaScript, а именно в Node.js.

Однако ни Python, ни JavaScript сами по себе не подходят для разработки ИИ-приложений с большим объемом вычислений. Это высокоуровневые, медленные языки со сложной средой выполнения, в которых удобство использования достигается за счет снижения производительности. Для решения этой проблемы блоки интеллектуальных вычислений в Python оборачиваются в нативные C/C++-модули. Точно так же можно сделать и в Node.js, но мы нашли решение получше — WebAssembly.

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

Читать далее

Rust 1.48.0: упрощение создания ссылок и псевдонимы поиска

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

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


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


rustup update stable

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


Что вошло в стабильную версию 1.48.0


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

Читать дальше →

Пишем ОС на Rust. Настройка среды. Бинарник для «голого» железа

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

Настройка среды. "Голый" бинарник, или Исполняемый файл без main()


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


Оригинал блога разрабатывается на GitHub. Замечания к оригиналу оставляйте на странице Issues репозитория выше, а к переводу — в личке, комментариях или тут. Код, написанный в этой статье, содержится в ветке post-01.

Читать дальше →

Обновления в смотрелке логов

Время на прочтение2 мин
Количество просмотров3.9K
Хотел бы поделиться с Вами рядом обновлений «смотрелки» для логов chipmunk. Описание займет не больше 2-х минут Вашего времени, но меж тем новые возможности могут оказаться весьма полезным подспорьем в Вашей повседневной работе.
Читать дальше →

Как просто и быстро искать данные с помощью Whale

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

В этом материале рассказывается о простейшем и быстром инструменте обнаружения данных, работу которого вы видите на КДПВ. Интересно, что whale создан таким образом, чтобы размещаться на удаленном git-сервере. Подробности под катом.
Приятного чтения!

Интереснейшее влияние Cyclone

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

Оглавление:


  • Cyclone
  • C++, владение и псевдонимы
  • Rust
  • Midori’s M#
  • Pony
  • Cone
  • Резюме

В 2001 году Джим Тревор (AT&T Research) и Грег Моррисетт (Cornell) запустили совместный проект по разработке безопасного диалекта языка программирования C — как развитие более ранних работ над Типизированным Ассемблером. После пяти лет напряженной работы и нескольких опубликованных научных работ, команда (в том числе Дэн Гроссман, Майкл Хикс, Ник Свами и другие) выпустила Cyclone 1.0. А затем разработчики занялись другими делами.

Читать дальше →

Книга «Программирование на Rust»

Время на прочтение13 мин
Количество просмотров18K
image Привет, Хаброжители! Официальный гайд по языку программирования Rust поможет вам создавать более быстрое и надежное программное обеспечение. Высокоуровневая эргономика и низкоуровневое управление часто противоречат друг другу, но Rust бросает вызов этому конфликту.

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

  • Владение и заимствование, жизненный цикл и типажи.
  • Гарантированная безопасность программ.
  • Тестирование, обработка ошибок и эффективный рефакторинг.
  • Обобщения, умные указатели, многопоточность, типажные объекты и сопоставления.
  • Работа со встроенным менеджером пакетов Cargo для создания, тестирования, документирования кода и управления зависимостями.
  • Продвинутые средства работы с Unsafe Rust.

Вы найдете множество примеров кода, а также три главы, посвященные созданию полноценных проектов для закрепления знаний: игры-угадайки, создание инструмента командной строки и многопоточного сервера.
Читать дальше →

Rust 1.47.0: const generics для массивов, LLVM 11, Control Flow Guard и сокращение трассировок

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

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


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


rustup update stable

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


Что вошло в стабильную версию 1.47.0


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

Читать дальше →

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

Попробуем выдвинуть аргументы против Rust

Время на прочтение6 мин
Количество просмотров25K
Недавно я прочитал статью c критикой Rust. Хотя в ней было много правильных вещей, она мне не понравилась — слишком многое там очень спорно. В целом, я вообще не могу рекомендовать к прочтению никакой статьи с критикой Rust. Это нехорошо, ведь важно обсуждать недостатки, а шельмование низкокачественной и неумелой критики, к сожалению, заставляет пропустить мимо внимания действительно хорошие аргументы.

Итак, попробую привести аргументы против Rust.
Читать дальше →

Что нового в ядре Linux

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

image


После всех этих лет, разработчики ядра Linux продолжают внедрять новшества. Новые версии будут быстрее и стабильнее.


Linux работает практически на всем: все 500 из 500 самых быстрых суперкомпьютеров мира; большинство общедоступных облаков, даже Microsoft Azure; и 74 процента смартфонов. Действительно, благодаря Android, Linux является самой популярной операционной системой для конечных пользователей, чуть обойдя Windows на 4 процента (39% против 35%).


Итак, что же будет дальше с Linux? После освещения Linux на протяжении всех 29 лет его истории и зная практически любого, кто хоть как-то связан с разработкой Linux, включая Линуса Торвальдса, я думаю, что у меня есть ответ на этот вопрос.

Читать дальше →

OpenPGP переписывают на Rust: проект Sequoia

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

Секвойя Стагг в роще Олдер-Крик, Калифорния

В 2018 году три бывших разработчика GnuPG начали работу над проектом Sequoia — реализацией OpenPGP на Rust. Как известно, OpenPGP — это открытый стандарт шифрования данных, часто используемый для защищённой электронной почты; а GnuPG — эталонная реализация этого стандарта.

Сами разработчики так изложили мотивацию за создание новой библиотеки OpenPGP:

  • GnuPG трудно модифицировать. Код и API накапливались в течение 21 года. Модульные тесты отсутствуют. Компоненты тесно связаны друг с другом. Архитектура оставляет желать лучшего, и простой рефакторинг уже не поможет.
  • Многие разработчики недовольны программными интерфейсами GnuPG. У инструмента командной строки GnuPG и соответствующих программных библиотек разная функциональность: некоторые команды доступны только из командной строки.
  • Rust — безопасный для памяти язык, что автоматически исключает целый класс багов.
  • GnuPG невозможно использовать под iOS из-за ограничений GPL.
Читать дальше →

Предпочитайте Rust вместо C/C++ для нового кода

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

2019-02-07


  • Когда использовать Rust
  • Когда не использовать Rust
  • Когда использовать C/C++
  • Ложные причины использования C/C++
  • Приложение: моя история с C/C++
  • Приложение: хор
Читать дальше →

Вышел минималистичный Linux-дистрибутив Bottlerocket для запуска контейнеров. Самое главное о нём

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


Компания Amazon объявила о финальном релизе Bottlerocket — специализированного дистрибутива для запуска контейнеров и эффективного управления ими.

Bottlerocket (кстати, так называют мелкие самодельные ракеты на дымном порохе) — не первая ОС для контейнеров, но вполне вероятно, что она получит широкое распространение благодаря дефолтной интеграции с сервисами AWS. Хотя система ориентирована на облако Amazon, открытый исходный код позволяет собрать её где угодно: локально на сервере, на Raspberry Pi, в любом конкурирующем облаке и даже в среде без контейнеров.

Это вполне достойная замена дистрибутиву CoreOS, который похоронила Red Hat.
Читать дальше →

Портируем утилиту командной строки с Go/Rust на D

Время на прочтение9 мин
Количество просмотров3.8K
Несколько дней назад, на реддите в «программировании», Paulo Henrique Cuchi поделился своим опытом разработки утилиты командной строки на Rust и на Go (перевод на Хабре). Утилита, о которой идет речь, — это клиент для его пет-проекта Hashtrack. Hashtrack предоставляет GraphQL API, с помощью которого клиенты могут отслеживать определенные хэштэги твиттера и получать список соответствующих твитов в реальном времени. Будучи спровоцированным комментарием, я решил написать порт на D, чтобы продемонстрировать, как D может быть использован для подобных целей. Я постараюсь сохранить ту же структуру, которую он использовал в своем блогпосте.

Исходники на Гитхабе

Видео по клику
Читать дальше →

Обновления в Chipmunk

Время на прочтение2 мин
Количество просмотров1.7K
Рад представить Вашему вниманию некоторые обновления «смотрелки» для логов chipmunk. Где-то стало удобнее, где-то практичнее, но обо всем по порядку… Под катом будет коротко, но интересно.
Читать дальше →