LINUX.ORG.RU

Rust


261

19

Всего сообщений: 146

resvg 0.4 — библиотека отрисовки SVG

Группа Open Source

resvg — это библиотека для отрисовки SVG, прямыми аналогами которой являются librsvg и QtSvg. Но в отличие от них, resvg поддерживает отрисовку с помощью нескольких бэкендов (Qt и cairo) и обеспечивает более полную поддержку стандарта. Также resvg является модульным, что позволяет использовать лишь нужные функции.

( читать дальше... )

>>> Подробности

 , ,

RazrFalcon
()

Rust 1.31.0 (2018)

Группа Разработка

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

Если у вас установлена предыдущая версия Rust, обновиться до Rust 1.31.0 проще всего следующим образом:

rustup update stable

( читать дальше... )

>>> Подробности

 , rust2018

dotcoder
()

Первая международная конференция по Rust в России - Москва, 15-16 декабря - RustRush 2018

Группа Конференции и встречи

15-16 декабря в отеле «Новотель Москва Сити» пройдёт международная конференция для разработчиков на Rust — RustRush 2018.

В программе 2 дня. В субботу, 15 декабря — доклады; в воскресенье, 16 декабря — воркшопы.

Заявлено 12 докладчиков из разных стран, среди них 4 докладчика из Rust Team: Стив Клабник, Эшли Уильямс, Паскаль Хертляйф и Катарина Фей. Список докладчиков.

Основные темы конференции — веб, блокчейн, системное программирование и высокая производительность. Полная программа.

Будет 2 воркшопа. Стив Клабник и Эшли Уильямс проведут воркшоп об использовании связки Rust и WebAssembly, а Артём Павлов (основатель проекта RustCrypto) — о криптографии на чистом Rust.

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

Предусмотрена скидка для студентов — 50%. Используйте промокод «STUDENT». В случае использования этой скидки, на входе нужно будет показать действующий студенческий билет.

Также предусмотрена скидка для участников сообщества Linux.org.ru — 20%. Используйте промокод «LINUX».

Купить билет.

>>> Подробности

 , , ,

mkpankov
()

Pijul 0.11

Группа Open Source

Вышла новая версия Pijul — свободной системы управления версиями, основанной на теории патчей и написанной на языке Rust.

Pijul развивает идеи Darcs — Pijul быстрее, лучше, в нём решена проблема экспоненциальной сложности слияния и поддерживаются ветки (для всех, кто спросил и еще спросит «чем оно лучше Git» - ссылка на FAQ)

Слово «Pijul» (произносится «пихуль») — это мексиканское названия Бороздчатоклювого ани, вида птиц семейства кукушковых, чьи особи совместно работают над строительством гнёзд.

Улучшения в версии 0.11:

  • Добавлено частичное клонирование подкаталогов: pijul clone --path и pijul pull --path. При этом скачиваются только те патчи, которые затрагивают указанный подкаталог.
  • Добавлен парсер ~/.ssh/config — теперь Pijul будет автоматически использовать настройки псевдонимов хостов, SSH-прокси, ключей и т. д.
  • Внутренняя архитектура переведена на использование библиотеки Tokio — де-факто стандарта для асинхронного программирования на языке Rust. Минус велосипеды, новичкам будет проще разобраться в коде Pijul.
  • Исправлено много мелких и две крупные ошибки. Одна из них приводила к падению производительности при использовании pijul record, другая в некоторых случаях приводила к изменении содержимого патчей и файлов после клонирования.

Для нужд Pijul автором также развиваются вспомогательные библиотеки:

  • Thrussh — реализация клиента и сервера SSH на языке Rust.
  • Pleingres — клиентская библиотека, реализующая сетевой протокол PostgreSQL на языке Rust.
  • Sanakirja — хранилище «ключ-значение» на языке Rust, основанное на B-деревьях и поддерживающее транзации (аналог LMDB). «Sanakirja» по-фински означает «словарь».

Автор также разрабатывает Pijul Nest — аналог GitHub на основе Pijul и Rust. К сожалению, Nest пока не является свободным проектом.

>>> Подробности

 , , ,

Begpoug
()

Требуется помощь в тестировании Rust 2018

Группа Разработка

В июле этого года начались обсуждения вокруг Rust 2018. Вкратце, запускается цикл долгосрочных этапов, называемых «Выпусками», вокруг которых, в рамках обычных 6-недельных циклов разработки, будут сосредоточены все улучшения и работы: в библиотеках, инструментах и документации Rust. Новые выпуски будут выходить примерно раз в три года: Rust 1.0 был выпуском «Rust 2015», а предстоящий Rust 1.31 будет выпуском «Rust 2018». Каждому выпуску посвящён свой предмет: в Rust 2015 — это была стабильность, в Rust 2018 — это продуктивность.

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

Есть два способа попробовать Rust 2018: обновить текущий проект, или начать новый. Подробная информация есть в руководстве по выпуску, ниже же приведена быстрая и упрощенная версия.

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

( Установка Rust-бета )

( Начало нового проекта )

( Преобразование существующего проекта )

>>> Подробности

 

dotcoder
()

Релиз Rust 1.30

Группа Разработка

Что нового:

  • Rust 1.30 расширяет функционал процедурных макросов, добавляя возможность определять атрибутные процедурные макросы и функциональные процедурные макросы.
  • Теперь можно импортировать макросы в область видимости с помощью ключевого слова use.
  • Стабилизирован пакет proc_macro, который дает API, необходимый для написания процедурных макросов. В нем также значительно улучшили API для обработки ошибок, и такие пакеты, как syn и quote уже используют его
  • Два новых улучшения в использовании use: во-первых, внешние пакеты теперь добавляются в prelude, во-вторых, use стал поддерживать импорт элементов в текущую область видимости с путями, которые начинаются на crate.
  • Сырые идентификаторы
  • В Rust 1.30 можно использовать атрибут #[panic_handler] для самостоятельной реализации паники. Теперь можно создавать приложения, а не только библиотеки, которые не используют стандартную библиотеку.
  • В макросах теперь можно сопоставлять модификаторы области видимости, такие как pub, с помощью спецификатора vis.
  • «инструментальные атрибуты», такие как #[rustfmt::skip], теперь стабилизированы.
  • стабилизирован ряд API в стандартной библиотеке
  • В Cargo теперь есть индикатор выполнения

>>> Подробности

 

Anper
()

Rust 1.29

Группа Mozilla

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

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

1.29 привносит не очень много изменений. Ожидается что Rust 1.30 и 1.31 будут очень значительными, так что большая часть 1.29 итерации ушла на подготовку к будущим изменениям. Два самых заметных нововведения этого выпуска даже не касаются самого языка: это две новые возможности Cargo и обе они касаются предупреждений.

  • cargo fix автоматически исправляет предупреждения в коде
  • cargo clippy - статический анализатор Rust кода, помогающий поймать распространенные ошибки и просто улучшить код

cargo fix

С выпуском Rust 1.29 у Cargo появляется новая подкоманда: cargo fix. Если вы когда-либо писали на Rust, то скорее всего уже сталкивались с предупреждениями компилятора. Например, рассмотрим такой код:

fn do_something() {}

fn main() {
    for i in 0..100 {
        do_something();
    }
}

В нем мы вызываем do_something сто раз, но никогда не используем переменную i. Rust предупреждает нас об этом:

> cargo build
   Compiling myprogram v0.1.0 (file:///path/to/myprogram)
warning: unused variable: `i`
 --> src\main.rs:4:9
  |
4 |     for i in 1..100 {
  |         ^ help: consider using `_i` instead
  |
  = note: #[warn(unused_variables)] on by default

    Finished dev [unoptimized + debuginfo] target(s) in 0.50s

Видите подсказку о переименовании в _i? Мы можем автоматически применить ее при помощи cargo fix:

> cargo fix
    Checking myprogram v0.1.0 (file:///C:/Users/steve/tmp/fix)
      Fixing src\main.rs (1 fix)
    Finished dev [unoptimized + debuginfo] target(s) in 0.59s

Если теперь мы откроем src\main.rs, то увидим исправленный код:

fn do_something() {}

fn main() {
    for _i in 0..100 {
        do_something();
    }
}

Теперь в коде используется _i, и предупреждение больше не выдается.

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

cargo clippy

Еще о предупреждениях: теперь вы можете попробовать cargo-clippy через Rustup. Clippy это статический анализатор, который выполняет много дополнительных проверок вашего кода.

Например:

let mut lock_guard = mutex.lock();

std::mem::drop(&lock_guard)

operation_that_requires_mutex_to_be_unlocked();

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

Установим предварительную версию Clippy через Rustup:

$ rustup component add clippy-preview

и запустим ее:

$ cargo clippy
error: calls to `std::mem::drop` with a reference instead of an owned value. Dropping a reference does nothing.
 --> src\main.rs:5:5
  |
5 |     std::mem::drop(&lock_guard);
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: #[deny(drop_ref)] on by default
note: argument has type &std::result::Result<std::sync::MutexGuard<'_, i32>, std::sync::PoisonError<std::sync::MutexGuard<'_, i32>>>
 --> src\main.rs:5:20
  |
5 |     std::mem::drop(&lock_guard);
  |                    ^^^^^^^^^^^
  = help: for further information visit https://rust-lang-nursery.github.io/rust-clippy/v0.0.212/index.html#drop_ref

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

Обратите внимание, что это только ознакомительная версия; Clippy еще не достиг 1.0, поэтому набор и поведение проверок еще могут меняться. Мы выпустим компонент clippy, как только он будет стабилизирован, а пока просим вас посмотреть на деле предварительную версию и рассказать нам о своем опыте.

Да, есть еще нюанс: к сожалению, пока что нельзя использовать clippy вместе с cargo-fix. Работа над этим ведется.

Подробности смотрите в примечаниях к выпуску.

Стабилизация стандартной библиотеки

В этом выпуске были стабилизированы следующие API:

Также, теперь вы можете сравнивать &str и OsString.

Подробности смотрите в примечаниях к выпуску.

Улучшения в Cargo

Выше мы уже описали две новые подкоманды Cargo. Так же, Cargo теперь будет автоматически пытаться починить Cargo.lock файлы, испорченные git mergeом. Это поведение можно отключить флагом --locked.

cargo doc обзавелся новым флагом: --document-private-items. По умолчанию, cargo doc документирует только публичные части API, потому что предназначен для генерации пользовательской документации. Но если вы работаете над своим пакетом и в нем есть внутренняя документация, то --document-private-items включит генерацию документации вообще для всего.

>>> Примечания к выпуску

>>> Подробности

 ,

ozkriff
()

websocat — клиент, сервер и прокси для WebSocket-ов

Группа Интернет

Вышла версия 1.0.0 программы для работы с WebSocket-ами из командной строки «websocat». Девиз программы: "netcat, curl и socat для вебсокетов".

( читать дальше... )

>>> Подробности

 , , ,

vi0
()

Eclipse 4.8.0 Photon

Группа Open Source

27 июня вышла новая версия Eclipse 4.8.0 Photon. Eclipse - платформа для построения IDE, включающая в себя плагины для поддержки разработки на разных языках. По словам Майка Милинковича, исполнительного директора Eclipse Foundation, задача Eclipse Photon - расширение многоязычных возможностей Eclipse за счет взаимодействия по протоколу LSP (Language Server Protocol), через который предоставляются поддержка редактирования кода на современных языках (в Eclipse поддерживается LSP версии 3.6 и Debug Adapter protocol 1.25).

Обновления плагинов:

В состав Eclipse включен плагин для поддержки разработки на Rust - Eclipse Corrosion 0.1.0 (первый языковый плагин, построенный на взаимодействии по LSP).

>>> Подробности

 , , , ,

tailgunner
()

Rust 1.27

Группа Mozilla

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

( читать дальше... )

>>> Подробности

 

mersinvald
()

resvg 0.3 - библиотека отрисовки SVG

resvg 0.3 - библиотека отрисовки SVG
Группа Open Source
  • Добавлена поддержка расширенной разметки (advanced layout) текста (списки x, y, dx, dy, rotate). Примеры: 1, 2.
  • Добавлена поддержка элемента symbol.
  • Добавлена поддержка вложенных svg элементов.
  • Добавлена поддержка парсинга элементов из ENTITY.
  • Добавлена поддержка fallback цветов для типа paint. Пример: fill="url(#lg1) red"
  • Добавлена возможность отрисовки внешних и встроенных SVG(Z) файлов.
  • Добавлен Qt-враппер для C-API. Повторяет API и поведение QSvgRenderer.
  • Добавлено почти 100 новых тестов. Всего 634 теста.
  • Множество исправлений.
  • Снижен размер библиотеки. rendersvg с cairo бекендом теперь на 34% меньше, с Qt бекендом - на 19%.
  • Минимальная версия Rust снижена с последней стабильной до 1.22.

Ещё не реализовано:

  • Элементы: filter, marker, textPath.
  • Редко используемые атрибуты.

Результаты тестирования. Сравнительная таблица.

Если исключить dynamic SVG subset, фильтры и маркеры - resvg предоставляет лучшую поддержку SVG среди всех кроссплатформенных, FOSS библиотек. И, в том числе, является самой быстрой реализацией.

>>> Репозиторий

 ,

RazrFalcon
()

Rust 1.26

Группа Mozilla

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

( читать дальше... )

Основные изменения:

  • Вторая редакция книги «The Rust Programming Language» (почти) готова, и теперь рекомендована по умолчанию для ознакомления вместо первой версии. Также готовится к выходу бумажное издание книги.
  • impl Trait в заголовках функций

    ( читать дальше... )

  • Неявное разыменование ссылок в сопоставлении с образцом (match, if let, ...)

    ( читать дальше... )

  • Раскрытие срезов (slice) в сопоставлении с образцом

    ( читать дальше... )

  • Закрытые интервалы вида 0..=4, включающие обе границы в диапазон перечисления

    ( читать дальше... )

  • Новые целочисленные типы i128 и u128

( читать дальше... )

>>> Подробности

 

MyTrooName
()

zicsv и zicsv-tool v0.1.0

Группа Open Source

Как известно, распространение списков блокировок Роскомнадзора официально запрещено за пределами провайдеров. Но нашлись добрые люди, которые создали проект Zapret-Info и регулярно выкладывают свежие выгрузки реестра заблокированных адресов.

К сожалению, дампы выгрузок выкладываются в неудобном для использования формате (CSV, CP1251, иногда содержит ошибки). Для разбора этого формата была написана библиотека zicsv, позволяющая поточно читать дамп. На основе этой библиотеки разработана утилита командной строки zicsv-tool, с помощтю которой можно:

  • конвертировать дамп в гораздо более читабельный JSON;
  • выводить определённые типы заблокированных адресов (например только подсети) простым списком;
  • и искать адреса в списке заблокированных.

( читать дальше... )

Краткая инструкция по установке и использованию.

>>> Репозиторий на гитхабе

 , ,

Deleted
()

resvg 0.2 — теперь лучше librsvg

Группа Open Source

resvg — библиотека отрисовки SVG.

Основные изменения:

  • Библиотека была почти полностью переписана.
  • Добавлена поддержка clipPath, mask, pattern и preserveAspectRatio.
  • Новый, написанный с нуля, набор тестов: сайт, репозиторий. На данный момент содержит 539 тестов/файлов svg.
  • Добавлена поддержка отрисовки элементов по ID.
  • Препроцессор был вынесен в отдельный проект: usvg.
  • Новая реализация C-API с полноценной документацией.
  • Множество мелких исправлений.

Краткую сводку о результатах тестирования можно посмотреть здесь.

В двух словах: на данный момент resvg не хуже librsvg, если вам не нужны фильтры (в любом случае тот же blur реализован в librsvg неверно). Производительность приблизительно одинаковая.

Inkscape, с другой стороны, в среднем в 10 раз медленнее и хотя поддерживает больше возможностей SVG (фильтры, маркеры и прочее редко используемое), при этом содержит массу ошибок в реализации базовых примитивов.

>>> Подробности

 ,

RazrFalcon
()

Rust 1.25.0

Группа Mozilla

Сегодня вышел Rust 1.25.0 (2018-03-29).

Rust это системный язык программирования, нацеленный на надёжность, скорость и параллельное выполнение.
Если вы имеете предыдущую версию Rust, установленную через rustup, для получения версии 1.25.0 достаточно ввести в терминале:

$ rustup update stable

Что нового в 1.25.0 stable

Синтаксис

Компилятор

Библиотека

Стабилизированные API

  • Location::column;
  • ptr::NonNull;

    Наиболее значимое событие — это std::ptr::NonNull<T>. Этот тип похож на *mut T, но является ненулевым (non-null) и ковариантным. Если вкратце, NonNull<T> гарантирует, что никогда не будет равен null, а это означает, что Option<NonNull<T>> имеет тот же размер, что и *mut T. Если вы создаете структуру данных с небезопасным кодом, NonNull<T> зачастую будет правильным выбором для вас.

    Следующие функции теперь могут быть использованы в константных выражениях, т.е. например, static MINUTE: Duration = Duration::from_secs(60);:

  • Duration::new;
  • Duration::from_secs;
  • Duration::from_millis;
  • Duration::from_micros;
  • Duration::from_nanos.

Cargo

Разное

Примечания по поводу совместимости

>>> Подробности

 

Virtuos86
()

fselect 0.3.1

Группа Open Source

fselect — это консольная утилита для поиска файлов с помощью выражений, напоминающих SQL. В некоторых случаях может заменить традиционный find.

Преимущества:

  • возможность создания сложных запросов с помощью скобок и операторов SQL;
  • поиск по ширине/высоте изображений;
  • поиск внутри zip-архивов;
  • форматирование вывода в CSV, JSON и null-terminated строки.

Пример:

$ fselect "fsize, modified, path from /home/pupseng depth 3 where size >= 1mb and ( name like '%.jpg' or name like '%.png' )"

1.82 MiB	2018-01-16 13:31:59	/home/pupseng/Pictures/Screenshot from 2018-01-16 13:31:46.png	
1.29 MiB	2017-09-05 13:00:02	/home/pupseng/Downloads/Telegram Desktop/image_2017-09-05_12-59-55.png	
2.74 MiB	2017-05-31 12:23:31	/home/pupseng/Downloads/Telegram Desktop/IMG_9514.jpg	
2.25 MiB	2017-07-28 15:57:44	/home/pupseng/Downloads/Telegram Desktop/image_2017-07-28_15-57-35.png	
3.56 MiB	2016-07-04 16:43:13	/home/pupseng/Downloads/fugue.png	
7.15 MiB	2016-10-24 12:25:32	/home/pupseng/Natasha/DCIM6807.jpg	

Утилита написана на языке программирования Rust и в настоящий момент устанавливается с помощью cargo. Крайне приветствуется помощь в организации сборки пакетов для различных дистрибутивов Linux, а также Mac OS.

>>> Подробности на Github

 , , fselect, ,

Pupseng
()

Rust 1.24

Группа Mozilla

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

( читать дальше... )

>>> Подробности

 

Crocodoom
()

Вышел Rust 1.23

Группа Разработка

4 января состоялся плановый релиз компилятора и стандартных средств разработки системного языка программирования Rust — 1.23.

Интересные изменения:

  • За счёт предотвращения ненужного копирования аргументов функций уменьшено потребление памяти. Например сам компилятор rustc стал потреблять на 5-10% меньше памяти.
  • rustdoc перешёл на рендеринг документации при помощи CommonMark. Раньше использовался Hoedown.
  • The Cargo Book переехал с doc.crates.io на doc.rust-lang.org и обновил формат.
  • cargo uninstall научился сразу удалять несколько пакетов. Например, команда cargo uninstall foo bar удалит foo и bar.
  • auto трейты теперь разрешены в трейтовых объектах. Один из коммитов этого изменения также окончательно удалил элемент языка send.
  • Проверки типов операндов бинарных операторов теперь производится относительно левого операнда, что предотвращает путаницу в соответствующих сообщениях об ошибках.
  • Исключена необходимость в T: Sync для RwLock<T>: Send.
  • Исключена необходимость в T: Sized для {<*const T>, <*mut T>}::as_ref и для <*mut T>::as_mut.
  • Оптимизирована реализация Thread::{park, unpark}.
  • Улучшена производительность SliceExt::binary_search.
  • Трейт AsciiExt объявлен устаревшим, а его методы перенесены в примитивные типы.
  • char::escape_debug теперь использует Unicode 10 вместо Unicode 9.
  • Включён LLVM-флаг TrapUnreachable.
  • musl, используемый для сборки musl rustc, обновлён до 1.1.17.
  • Улучшена производительность SliceExt::binary_search.
  • rustfmt включён в основную инсталляцию.
  • Минимальная версия LLVM изменена на 3.9.

Полный перечень изменений

>>> Анонс

 ,

bbk123
()

libresvg 0.1 — новая альтернатива librsvg

Группа Open Source

libresvg 0.1 представляет собой первый экспериментальный выпуск новой библиотеки для отрисовки (рендеринга) SVG.

Основная цель проекта — заменить librsvg и QtSvg, и стать альтернативой Inkscape для тех, кто использует его для конвертирования SVG в PNG.

В текущей версии новая библиотека уже превосходит QtSvg, но не дотягивает до librsvg по возможностям (нет filter, clipPath, mask, marker, pattern). Тем не менее, поддержка стандарта в libresvg намного лучше, из-за чего базовые элементы, такие как path, gradients, shapes, text, поддерживаются лучше (у librsvg множество ошибок отрисовки).

Основные отличия от librsvg:

  • Возможность использовать несколько бекэндов (сейчас реализованы Qt и cairo). librsvg привязан к cairo и glib, из-за чего использовать его вне Linux — проблематично.
  • В отличии от librsvg, в libresvg стадии разбора и отрисовки полностью разделены, что позволяет легко добавлять новые бекэнды. Также это позволяет реализовать множество алгоритмов препроцессинга и валидации SVG, что, в свою очередь, позволяет избежать большого количества ошибок отрисовки.
  • Полная поддержка градиентов. rsvg не умеет наследовать атрибуты, проверять атрибуты на корректность, не поддерживает градиенты без дочерних или с одним дочерним элементом (swatches).
  • Хорошая поддержка отрисовки текста. rsvg не понимает xml:space, text-decoration, не всегда верно отрисовывает многострочный текст, плохо поддерживает tspan.
  • Поддержка CSS намного лучше, но полной поддержки всё ещё нет.

В разделе Releases можно скачать демо-приложение для оценки отрисовки для тех, кто не хочет собирать библиотку из исходников. Также в архиве находится консольное приложение для конвертации, альтернатива rsvg-convert.

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

>>> Подробности

 , , ,

RazrFalcon
()

В компилятор Rust по умолчанию добавлена поддержка бэкенда WebAssembly

Группа Mozilla

Соответствующий запрос о слиянии был принят в основную ветку 25 ноября. С этого дня в ночных сборках доступна штатная цель сборки wasm32-unknown-unknown.

Благодаря этому, установив свежую ночную сборку, теперь можно компилировать Rust в WebAssembly без дополнительного инструментария:

rustup update
rustup target add wasm32-unknown-unknown --toolchain nightly
rustc +nightly --target wasm32-unknown-unknown -O hello.rs

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

cargo install --git https://github.com/alexcrichton/wasm-gc
wasm-gc hello.wasm small-hello.wasm

Полные инструкции можно найти в руководстве по установке wasm32-unknown-unknown.

>>> Источник

 ,

bodqhrohro_promo
()