LINUX.ORG.RU

Rust


248

19

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

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
()

Rust 1.22.0 и 1.22.1

Группа Mozilla

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

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

>>> Полный патчноут

 

creazero
()

Rust 1.21

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

Состоялся релиз языка системного программирования Rust.

Итак, новшества:

  • Теперь можно использовать статические ссылки для литералов (для размещения значений в статичной памяти (куче), вместо слотов стека).
  • Перед блоком «<>» теперь можно вставлять разделитель "::":
        my_macro!(Vec‹i32›::new); // Так нужно было писать раньше.
        my_macro!(Vec::‹i32›::new); // Раньше этот код считался некорректным.
    
  • Библиотека jemmaloc обновлена.
  • LLVM теперь может запускаться параллельно с трансляцией при компиляции с несколькими юнитами (-Ccodegen-units=N) генератора кода, изменение позволило сильно сократить потребление памяти во время сборки.
  • Стабилизированы API std::mem::discriminant, needs_drop и итератор for_each.
  • Добавлено много новой документации.
  • Можно установить RLS (Rust Language Server, серверный модуль для IDE с поддержкой протокола LSP) при помощи команды rustup (rustup component add rls-preview).
  • В cargo (пакетный менеджер для Rust) появилась возможность установки нескольких пакетов одновременно.

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

 

trallman
()

Выпущена пре-альфа версия API для встраивания браузера Servo

Группа Mozilla

20 сентября объявлено о выходе libservo — API для встраивания движка браузера Servo. Демонстрационные программы, написанные с использованием libservo, доступны в репозитории на GitHub.

Со временем libservo API планируется стабилизировать, но сейчас он стабильным не является.

>>> Обсуждение на reddit

 , ,

tailgunner
()

Вышел Rust 1.20

Группа Mozilla

Команда разработчиков Rust с удовольствием объявляет о выходе новой стабильной версии Rust: 1.20.0.

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

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

 

red75prim
()

Exonum — новый фреймворк для создания приватных блокчейнов

Группа Open Source

Разработчики компании Bitfury Group представили свой собственный фреймворк для разработки приватных блокчейнов Exonum, который позволяет создавать свои безопасные и высокопроизводительные blockchain-решения.

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

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

 , ,

Gorthauer
()

Rust 1.19

Группа Mozilla

Команда Rust рада объявить о последней версии Rust, 1.19.0. Rust это системный язык программирования, сфокусированный на безопасности, скорости и конкурентном выполнении.

( Подробности под катом... )

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

 

Virtuos86
()

Rust 1.18

Группа Mozilla

Команда Rust анонсирует релиз 1.18.

Обновление предыдущей версии легко:

$ rustup update stable

Сам rustup можно установить здесь.

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

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

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

 

gene1
()