LINUX.ORG.RU

Rust


266

22

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

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

 , , , ,

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

Продемонстрирована возможность разработки частей Linux на Rust

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

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

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

В качестве «Proof of Concept» была приведена реализация системного вызова, содержащая вставки на Assembler внутри unsafe-блоков. Код компилируется в объектный файл, не связанный с библиотеками и интегрируемый в ядро во время сборки. Работа производилась на основе исходного кода Linux 4.8.17.

>>> Статья

 , ,

batya
()

Rust 1.17

Группа Mozilla

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

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

$ rustup update stable

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

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

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

 ,

mersinvald
()

29–30 апреля в Киеве пройдёт RustFest 2017

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

29–30 апреля в Киеве будет проходить европейская конференция RustFest.

Rust — самый любимый язык программирования в мире по опросу StackOverflow. Он соединяет в себе последние достижения теории языков программирования с лучшими практиками индустрии и используется повсеместно: Internet of Things, Machine Learning, системные библиотеки, аддоны для Python, Java, .NET и т. д., мобильная разработка и WebAssembly.

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

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

 , ,

listochkin
()

Начата публикация исходных кодов серверной части Wire

Группа Open Source

На GitHub начата публикация исходных кодов серверной части сервиса обмена мгновенными сообщениями Wire. Пока опубликован код, отвечающий за обмен сообщениями и интеграцию с nginx. В дальнейшем будут открыты исходники системы push-нотификаций для устройств на iOS и Android, поиска пользователей и управления устройствами.

Большая часть кода написана на языке программирования Haskell, небольшие фрагменты — на Rust и C. Код опубликован под лицензией AGPL 3.0.

Исходный код

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

 , , ,

hateyoufeel
()

Rust 1.16

Группа Mozilla

Представлен релиз Rust 1.16 — системного языка программирования, нацеленного на безопасную работу с ресурсами, скорость и параллельное выполнение кода. В этот релиз вошли 1364 патча от 137 разработчиков.

Если у вас уже установлена предыдущая версия Rust, то обновиться до Rust 1.16 очень легко:

$ rustup update stable

Самое крупное нововведение в Rust 1.16 — новая субкоманда cargo check направленная на ускорение процесса разработки.

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

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

 ,

mersinvald
()

Rust 1.15

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

Представлен релиз Rust 1.15 — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В этот релиз вошли 1443 патча.

Если у вас уже установлена предыдущая версия Rust, то обновиться до Rust 1.15 очень легко:

$ rustup update stable
или же следуя инструкции на соответствующей странице.

( Новое в 1.15 )

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

 

dotcoder
()

Rust 1.14

Группа Mozilla

Представлен релиз Rust 1.14 — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В этот релиз вошли 1230 патчей.

( Новое в 1.14 )

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

 

dotcoder
()

Анонсирован первый конкурс недобросовестного программирования на Rust

Группа Mozilla

Команда Rust анонсирует первый ежегодный конкурс «недобросовестного Rust» по мотивам существующих конкурсов «недобросовестного C» и «недобросовестной криптографии».

Задача Rust — сделать доступным написание безопасного низкоуровневого кода, защищённого от случайных уязвимостей. Меньше времени уделяется возможности Rust защитить от умышленного внедрения уязвимостей при бдительном обзоре кода. Конкурс предназначен для обнаружения и устранения возможных слабостей языка и его экосистемы. Иными словами, авторы просят вас сломать систему с помощью достаточно лёгкого для понимания кода. Можете ли вы написать полностью safe-Rust, скрывающий логический баг, или скрыть в unsafe-Rust уязвимость, которая не обнаружится при обзоре кода?

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

 

anonymous
()