Как публиковать свои пакеты на Crates.io

• Михаил Панков • обучение • поддержите на Patreon

teaser

Как зарегистрироваться на crates.io, опубликовать свою библиотеку, подключить её в другой проект, и как управлять версиями пакета на crates.io.

Это цикл статей:

Как настроить сборку и тестирование для Open Source проекта на Rust под Windows с помощью AppVeyor

• Михаил Панков • обучение • поддержите на Patreon

teaser

Как зарегистрироваться на AppVeyor, подключить туда свой проект на Rust и сделать первую сборку.

Это цикл статей:

Как настроить сборку и тестирование для Open Source проекта на Rust под Linux с помощью Travis

• Михаил Панков • обучение • поддержите на Patreon

teaser

Как зарегистрироваться на Travis, подключить туда свой проект на Rust и сделать первую сборку.

Это цикл статей:

Есть ли ООП в Rust?

• Михаил Панков • обучение • поддержите на Patreon

teaser

Многие программисты уже умеют программировать на объектно-ориентированных языках. Rust не является классическим объектно-ориентированным языком, но основные инструменты ООП можно применять и в нём.

В этой статье мы рассмотрим, как программировать на Rust в ООП-стиле. Мы будем делать это на примере: построим иерархию классов в учебной задаче.

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

Решаем систему логических уравнений на Rust

• Павел Никитин • руководства • поддержите на Patreon

Решение головоломки Lights Off размером 333 на 333

Язык программирования Rust сосредоточен на безопасности, скорости и параллелизме. Давайте проверим, насколько Rust быстрый в сравнении с другими компилируемыми языками программирования C и Vala в решении системы логических уравнений. Для этого реализуем алгоритм решения интересной головоломки Lights Off на языках

  • Rust
  • C
  • Vala

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

CoLaboratory: Rust #3. Лаборатория Касперского, 18 мая

• Михаил Панков • новости • поддержите на Patreon

лого

зарегистрироваться

Продолжаем нести знания людям. В этот раз у нас 3 доклада и много новостей, которые можно обсудить в кулуарах.

Расскажем про ООП в Rust, чтобы программисты, которые уже умеют в ООП, смогли лучше пользоваться тем, что есть в Rust. Там есть почти все привычные инструменты, но выглядят они по-другому.

Потом подробно поговорим про основы FFI — как передавать разные объекты из Rust и в Rust, кто будет ими владеть и чем отличается CStr и CString. Всё это нужно, если вы хотите взаимодействовать с Rust из кодобазы на других языках.

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

Что касается новостей, Rust увеличил версию с 1.13 до 1.17. Прошедшие выпуски принесли поддержку многих новых целевых платформ, в том числе Emscripten для компиляции под браузеры. На 2017 заявлена инициатива по повышению эргономики языка, и уже видны первые её плоды — cargo check и много мелких улучшений удобства пользования языком. На пути к макросам 2.0 стабилизированы макросы типа «custom derive». serde достиг версии 1.0. Вышла альфа-версия Rust Language Server для поддержки IDE.

Приходите, будет интересно!

Промежуточные результаты выдвижения на реализацию идей

• Михаил Панков • новости • поддержите на Patreon

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

результаты

CoLaboratory: Rust #3. Принимаем заявки на выступление 18 мая

• Михаил Панков • новости • поддержите на Patreon

лого

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

18 мая мы снова встретимся в офисе Лаборатории Касперского — и у вас есть возможность выступить.

Подать заявку можно прямо на этой странице — нажимайте «Читать дальше».

Заявки принимаются по четверг 13 апреля включительно.

Если вы никогда раньше не выступали, мы вас обрадуем — мы готовы помогать с подготовкой доклада на всех этапах. Мы помогаем с идеями для выступления, планом, структурой, стилем и с самим выступлением — поэтому обращайтесь к @mkpankov в чате или по почте.

Чем раньше вы свяжетесь с нами, тем лучше мы можем сделать ваш доклад — поэтому не затягивайте.

Планы сообщества в 2017 году. Часть 4, последняя. Результаты голосования, процесс реализации запланированного и идеи участников

• Михаил Панков • новости • поддержите на Patreon

Всем привет! Продолжаем планировать 2017-й.

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

  • Часть 1 — вступление, книги и социальные сети.
  • Часть 2 — митапы, выступления, календари событий, подкасты и конкурсы.
  • Часть 3 — статьи, сайт, Patreon, расширение тем и Ядро команды Сообщества.
  • Часть 4 (эта; последняя) — результаты голосования, процесс реализации запланированного и идеи участников.

Опросы

Планы сообщества в 2017 году. Часть 3. Статьи, сайт, Patreon, расширение тем и Ядро команды Сообщества

• Михаил Панков • новости • поддержите на Patreon

Всем привет! Продолжаем планировать 2017-й.

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

  • Часть 1 — вступление, книги и социальные сети.
  • Часть 2 — митапы, выступления, календари событий, подкасты и конкурсы.
  • Часть 3 (эта) — статьи, сайт, Patreon, расширение тем и Ядро команды Сообщества.
  • Часть 4 — результаты голосования, процесс реализации запланированного и идеи участников.

редактирование этой статьи

Планы сообщества в 2017 году. Часть 2. Митапы, выступления, календари событий, подкасты и конкурсы

• Михаил Панков • новости • поддержите на Patreon

Всем привет! Продолжаем планировать 2017-й.

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

  • Часть 1 — вступление, книги и социальные сети.
  • Часть 2 (эта) — митапы, выступления, календари событий, подкасты и конкурсы.
  • Часть 3 — статьи, сайт, Patreon, расширение тем и Ядро команды Сообщества.
  • Часть 4 — результаты голосования, процесс реализации запланированного и идеи участников.

фото с митапа

Планы сообщества в 2017 году. Часть 1. Вступление, книги и социальные сети

• Михаил Панков • новости • поддержите на Patreon

Всем привет! На результаты 2016-го посмотрели, теперь пора планировать 2017-й.

Планы будут написаны по частям. Они будут публиковаться по мере готовности в виде отдельных статей. Ссылки на них также будут появляться здесь.

  • Часть 1 (эта) — вступление, книги и социальные сети.
  • Часть 2 — митапы, выступления, календари событий, подкасты и конкурсы.
  • Часть 3 — статьи, сайт, Patreon, расширение тем и Ядро команды Сообщества.
  • Часть 4 — результаты голосования, процесс реализации запланированного и идеи участников.

Вступление

Формат этих публикаций таков. Я описываю идеи, а вы голосуете в их поддержку. «В поддержку» — значит, вы бы хотели реализации этой идеи. Ресурсы для её реализации будут сразу заявлены, но исполнитель будет выбран позже. Иными словами, кто именно и когда это сделает — в данном голосовании не важно.

карточка в трелле

Русскоязычное сообщество языка Rust в 2016 году

• Михаил Панков • новости • поддержите на Patreon

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

Вот для затравки число посетителей сайта за год:

число посетителей за год

CoLaboratory: Rust 2. Лаборатория Касперского, 22 ноября

• Михаил Панков • новости • поддержите на Patreon

лого

зарегистрироваться

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

За полгода с последней встречи в мире Rust произошло много интересного. Реализованы футуры и асинхронный ввод-вывод поверх них, сделан первый выпуск системы поддержки IDE, реализована инкрементальная сборка. Пробелы в языке и экосистеме Rust быстро заполняются. Так что самое время познакомиться с инструментом поближе!

22 ноября мы снова встретимся в офисе Лаборатории Касперского. Обсудим опыт реального применения Rust в нескольких задачах системного программирования и тестирования. Что получается хорошо, что — не очень. Расскажем как Rust помогает и как его готовить, чтобы он помогал вам.

Приходите — будет интересно!

Числа Пеано на системе типов Rust

• Fedor Logachev • обучение • поддержите на Patreon

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

Таким образом моя задача: записать и сложить натуральные числа с проверкой на уровне типов.

Если верить википедии «Аксио́мы Пеа́но — одна из систем аксиом для натуральных чисел, введённая в XIX веке итальянским математиком Джузеппе Пеано.»

Нас интересуют две из них — с помощью которых можно ввести и использовать натуральные числа:

  • 1 является натуральным числом
  • Число, следующее за натуральным, тоже является натуральным.

Дословно запишем на rust с помощью:

1
2
3
4
enum Nat {
  Zero,
  Succ(Nat)
}

Nat — это либо ноль, либо следующее натуральное число.

Введение в Iron

• Арсен Галимов aka «Loo Maclin» • обучение • поддержите на Patreon

Немного об Iron

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

Философия

Iron построен на принципе расширяемости настолько, насколько это возможно. Он вводит понятия для расширения собственного функционала:

  • «промежуточные» типажи — используются для реализации сквозного функционала в обработке запросов;
  • модификаторы — используются для изменения запросов и ответов наиболее эргономичным способом.

С базовой частью модификаторов и промежуточных типажей вы познакомитесь в ходе статьи.

Создание проекта

Для начала создадим проект с помощью Cargo, используя команду:

1
cargo new rust-iron-tutorial --bin

CoLaboratory: Rust — первая конференция о Rust в Москве

• Михаил Панков • новости • поддержите на Patreon

лого

зарегистрироваться

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

Год назад произошёл выпуск первой стабильной версии языка — Rust 1.0. С тех пор язык активно развивался. Ещё вчера про Rust никто не знал, а сегодня Dropbox переписал на нём ядро своей дисковой инфраструктуры.

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

Не пропустите! CoLaboratory: Rust — это шанс узнать о многообещающем языке программирования, который может вскоре заменить привычные инструменты, чьи позиции сейчас кажутся незыблемыми.

Мы начинаем продажу эксклюзивного издания Растономикона!

• Михаил Панков • новости • поддержите на Patreon

Добрый день, дорогие читатели. Как вы знаете, наше сообщество перевело книгу о продвинутом и небезопасном программировании на Rust — «Rustonomicon». Мы решили, что хорошее содержимое должно быть в хорошей форме, и объявляем об уникальном издании этой книги, которая должна быть на полке каждого программиста на Rust.

Конечно, мы не могли обойти стороной отсылку к Лавкрафту. Напомним, что Некрономико́н (англ. Necronomicon) — вымышленная книга, придуманная Говардом Лавкрафтом и часто упоминаемая в литературных произведениях, основанных на мифах Ктулху. Согласно рассказу «Ведьмин Лог», в этой книге описаны все магические ритуалы, а также полная история Древних, которые постоянно вели ожесточённые войны.

Отладка приложений на Rust с помощью GDB

• Александр Яшкин • обучение • поддержите на Patreon

Введение

По мотивам статьи Михаэля Петерсона, которую мы переработали и сделали актуальной на данный момент.

В этой статье мы рассмотрим, как можно использовать отладчик GDB с программами на Rust. Для этого я использую:

1
2
3
4
5
$ rustc -V
rustc 1.7.0 (a5d1e7a59 2016-02-29)

$ gdb --version
GNU gdb (GDB) 7.11

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

О чате на Gitter

• Михаил Панков • руководства • поддержите на Patreon

Всем привет! Как вы знаете, у нас есть несколько чат-каналов на сервисе Gitter, и сегодня я расскажу о некоторых интересных вещах, которые он умеет.

IRC-мост

Gitter предоставляет возможность читать и писать в канал через IRC. Для настройки IRC-клиента посетите https://irc.gitter.im/ и следуйте инструкциям.

Matrix-мост

Можно сидеть через Matrix, в клиенте Riot. Подробнее.

Markdown

Gitter поддерживает Markdown в сообщениях, благодаря чему код может выглядеть похожим на код: с моноширинным шрифтом и подсветкой синтаксиса. Чтобы это работало, блоки кода нужно заключать в тройные обратные кавычки (вот такие: ` ).

Вот краткая справка по остальным возможностям:

Как сделать свой первый Pull Request

• Михаил Панков • руководства • поддержите на Patreon

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

Сначала мы приведём высокоуровневое описание процесса, а затем подробно опишем каждый этап.

Наши результаты и планы на 2016

• Михаил Панков • новости • поддержите на Patreon

Всем привет! В этой публикации я попробую описать состояние нашего сообщества и экосистемы, сформировавшейся вокруг него, а затем опишу области, которые, на мой взгляд, стоит развивать.

Обсудить эти планы можно в комментариях к публикации.

Но сначала я хочу сказать спасибо всем участникам нашего сообщества — за работу, за общение и за поддержку. Я рад, что не я один работаю над улучшением сообщества. У нас очень дружелюбный народ в чате. Мы выросли до 150 человек за пару месяцев. Продолжайте в том же духе — это много значит :)

Также прошу присылать Pull Request’ы с исправлениями и дополнениями этой публикации, если что-то не так.

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

IDE для Rust

• Олег В. и Norman Ritchie • руководства • поддержите на Patreon

Это вики-статья. Последнее обновление: 16 ноября 2017.

Это руководство для тех, кто хочет быстро начать работу с Rust в IDE с подсветкой синтаксиса, автодополнением и прочими возможностями.

Время жизни в Rust (Часть 2)

• Александр Яшкин • обучение • поддержите на Patreon

Введение

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

Постановка задачи

Мы создадим структуру Customer, описывающую покупателя, который должен владеть экземпляром структуры Car. Покупатель будет иметь возможность покупать, продавать и обмениваться с другими покупателями автомобилями.

Время жизни в Rust (Часть 1)

• Александр Яшкин • обучение • поддержите на Patreon

Введение

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

Постановка задачи

Мы будем разрабатывать структуру с именем Logger, которая будет хранить в себе текстовые данные и предоставляющая доступ к своим данным только для чтения.

Здравствуй, мир!

• команда rustycrate • новости • поддержите на Patreon

Добро пожаловать на русскоязычный сайт для разработчиков на Rust!

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

Создание сообщества назревает уже давно. Наш язык миновал заветный выпуск «1.0». Rust стабилен, экосистема растёт как на дрожжах, а улучшения поспевают в каждом новом выпуске. Самое время расширять аудиторию!