LINUX.ORG.RU

Rust


264

20

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

Вышел servo 0.0.2

Группа Mozilla

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

В данном выпуске появился servoshell – это демо-браузер, запускаемый и конфигурируемый из командной строки. Для его сборки требуется rustc-1.88 (отсутствует в убунту старше 25.10) и набор библиотек X11 (последнее, вероятно, можно считать косвенным свидетельством отсутствия поддержки Wayland).

>>> Релиз на гитхабе

>>> Анонс (Phoronix)

 , , ,

anonmyous
()

fselect 0.9.1

Группа Open Source

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

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

>>> Репозиторий проекта на GitHub

 , , , ,

Pupseng
()

Ubuntu 25.10: обнаружена уязвимость в sudo-rs

Ubuntu 25.10: обнаружена уязвимость в sudo-rs
Группа Ubuntu Linux

Ubuntu 25.10 вновь столкнулась с проблемами при переходе на Rust-утилиты: на этот раз под удар попал sudo-rs — переписанная на Rust версия классической команды sudo. В коде обнаружены две уязвимости средней степени опасности, одна из которых получила идентификатор CVE-2025-64170.

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

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

 , ,

DrRulez
()

Выпуск Rust Coreutils 0.4. Расхождение поведения утилиты du в uutils и GNU Coreutils

Группа Open Source

Опубликован выпуск проекта uutils coreutils (Rust Coreutils) версии 0.4.0, развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.

Rust Coreutils задействован по умолчанию в выпуске Ubuntu 25.10 и применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora). В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils и procps, а также программ sed и login.

В новой версии Rust Coreutils:

  • Улучшена совместимость с эталонным тестовым набором GNU Coreutils, при прохождении которого успешно выполнено 544 теста, что на 12 больше, чем в прошлой версии (532). 56 (68) тестов завершилось неудачей, а 33 (33) теста было пропущено. Заявлен уровень совместимости 85.80% (было 83.91%).

  • В утилите date улучшена совместимость с GNU date при обработке часовых поясов (добавлена возможность указания сокращённых наименований часовых поясов в опции –set).

*В утилите factor задействован пакет num_prime для ускорения факторизации типов u64/u128.

*В утилите tsort реализация алгоритма обхода DFS переведена с рекурсивного на итеративный метод работы для предотвращения переполнения стека.

  • В утилите cksum реализована поддержка хэшей sha2 и sha3. Добавлены тесты для отслеживания изменения производительности cksum. Функциональность hashsum перенесена в cksum.

  • В утилите mkdir устранено переполнение стека, приводящее к аварийному завершению при создании большого (200+) числа вложенных каталогов.

  • В утилитах stdbuf и uptime реализована поддержка платформы OpenBSD.

  • Улучшена сборка и тестирование на платформе FreeBSD.

  • Внесены общие улучшения для повышения переносимости. Расширены возможности, устранены проблемы и добавлены недостающие опции для утилит base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.

Стоит отметить расхождение в поведении утилиты du из наборов uutils и GNU Coreutils, всплывшее после перехода Ubuntu 25.10 на uutils. Разработчики ещё не решили трактовать ли данное расхождение как ошибку, так как с одной стороны в поведении uutils есть логика и тестовый набор GNU Coreutils не выявляет проблем, но с другой стороны несовместимости с GNU Coreutils предписано обрабатывать как ошибки и поведение Busybox соответствует GNU Coreutils.

Разное поведение наблюдается при указании в числе аргументов утилиты du нескольких каталогов в ситуации, когда некоторые из каталогов являются подкаталогами других каталогов (например, /var и /var/log). Uutils показывает фактический размер каждого отдельного каталога, а в итоговой строке выводит суммарный размер всех указанных каталогов. GNU Coreutils показывает в итоговой строке фактический размер, который указанные каталоги занимают на диске, но в раздельном списке показывает размеры каждого каталога с вычетом вложенных каталогов, из-за чего их размер получается меньше фактического. Кроме того, значения, выводимые в GNU Coreutils и Busybox, меняются в зависимости от порядка указания каталогов.

Например, при проверке размера каталогов /var/log и /var, фактический размер которых 1540 и 35495 блоков (МБ).

В GNU Coreutils будет выведено:

du -smc /var/log /var
   1540    /var/log
   33955   /var # меньше фактического
   35495   total

   du -smc /var /var/log 
   35495   /var # показан только /var и не показан /var/log
   35495   total

В uutils:

du -smc /var/log /var
   1540    /var/log
   35495   /var
   37034   total # больше фактического, но соответствует сумме /var и /var/log

   du -smc /var /var/log
   35495   /var  
   1540    /var/log
   37034   total # больше фактического, но соответствует сумме /var и /var/log

В Busybox:

du -smc /var/log /var
   1540    /var/log
   33955   /var # меньше фактического
   35495   total

   du  -smc /var /var/log
   35495   /var # показан только /var и не показан /var/log
   35495   total

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

 , , , ,

PunkPerson
()

Tatuin v0.25.0

Группа Open Source

Tatuin (Task Aggregator TUI for N providers) — агрегатор задач с текстовым пользовательским интерфейсом (TUI), объединяющий в одном окне задачи из различных источников: Todoist, Obsidian, GitLab TODO, GitHub Issues, iCal и CalDAV. Поддерживает базовые операции над задачами — добавление, редактирование, выполнение и удаление.

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

>>> Полный список изменений

 , , , ,

panter_dsd
()

В Debian намерены добавить Rust в число обязательных зависимостей к APT

Группа Debian

Джулиан Андрес Клоде (Julian Andres Klode), основной сопровождающий проект APT, объявил о решении добавить код на языке Rust в пакетный менеджер APT, а также включить в число обязательных зависимостей компилятор Rust, стандартную библиотеку Rust и PGP-инструментарий от проекта Sequoia, написанный на Rust. Изменения намерены реализовать не раньше мая 2026 года, чтобы дать разработчикам портов Debian полгода на реализацию корректной работы инструментария Rust или сворачивание порта.

На Rust планируют реализовать компоненты APT, требующие повышенного внимания с точки зрения безопасности, такие как парсеры форматов deb, ar и tar, а также код для проверки цифровых подписей. Ранее, в состав APT 3.0 уже была добавлена возможность использования написанной на Rust утилиты sqv для проверки цифровых подписей вместо вызова gpgv.

Андреас обосновывает предстоящее изменение важностью того, чтобы «проект мог двигаться вперёд и опираться на современные инструментарии и технологии, а не буксовать, пытаясь заставить работать современное программное обеспечение на устаревших системах».

Ранее сообщалось, что из-за ошибки в uutils в Ubuntu 25.10 перестала работать автоматическая проверка наличия обновлений.

Оригинал:

Hi all,

I plan to introduce hard Rust dependencies and Rust code into
APT, no earlier than May 2026. This extends at first to the
Rust compiler and standard library, and the Sequoia ecosystem.

In particular, our code to parse .deb, .ar, .tar, and the
HTTP signature verification code would strongly benefit
from memory safe languages and a stronger approach to
unit testing.

If you maintain a port without a working Rust toolchain,
please ensure it has one within the next 6 months, or
sunset the port.

It's important for the project as whole to be able to
move forward and rely on modern tools and technologies
and not be held back by trying to shoehorn modern software
on retro computing devices.

Thank you for your understanding.
-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer                              i speak de, en

>>> Источник

 , , ,

Sm0ke85
()

Rust 1.91.0

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

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

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

>>> Подробнее

 ,

snake266
()

Уязвимость в Rust-библиотеках для формата TAR, приводящая к распаковке файлов из вложенного архива

Уязвимость в Rust-библиотеках для формата TAR, приводящая к распаковке файлов из вложенного архива
Группа Безопасность

В написанной на языке Rust библиотеке async-tar, предоставляющей функции для чтения и записи tar-архивов, выявлена уязвимость (CVE-2025-62518, кодовое имя TARmageddon), позволяющая при распаковке специально оформленного tar-архива не только извлечь размещённые в нём файлы, но и файлы, содержащиеся во вложенном tar-архиве. Уязвимость может быть использована для обхода систем верификации архивов и распаковки файлов, для которых не выполнялась проверка.

Уязвимость также проявляется в форках библиотеки async-tar, таких как tokio-tar, krata-tokio-tar и astral-tokio-tar, а также в утилитах на их основе, например, в пакетном менеджере uv, развиваемом в качестве высокопроизводительной замены «pip» для проектов на языке Python. Из популярных проектов, использующих уязвимые библиотеки, также отмечаются инструментарий testcontainers для запуска docker-контейнеров и WebAssembly runtime wasmCloud. В репозитории crates.is за последние 90 дней библиотека async-tar насчитывает 1.3 млн загрузок, tokio-tar - 2.2 млн, testcontainers - 2.9 млн.

Уязвимость вызвана некорректным выбором позиции при разборе разных значений размера в заголовках ustar и PAX. В tar-архивах в формате PAX для каждого файла внутри архива указываются два заголовка - классический ustar и расширенный PAX. Проблема вызвана тем, что уязвимые библиотеки при распаковке файлов вместо вычисления смещения на основе размера из расширенного заголовка PAX, брали размер из устаревшего заголовка ustar. При нулевом значении размера в заголовке ustar, идущее за ним содержимое файла обрабатывалось как корректный блок TAR-заголовков для следующего файла.

Для совершения атаки достаточно создать TAR-архив, в котором в ustar-заголовке указан нулевой размер, а в заголовке для формата PAX актуальный размер, из-за чего содержимое файла с другим tar-архивом будет обработано как часть основного архива. Пример кода для создания подобных архивов размещён на GitHub. Уязвимость устранена в выпусках tokio-tar 0.5.6 и uv 0.9.5. Для остальных библиотек исправления пока не опубликованы, но для astral-tokio-tar, async-tar и krata-tokio-tar отдельно подготовлены патчи.

Уязвимости в библиотеках присвоен уровень опасности 8.1 из 10, так как проблема может использоваться для перезаписи распаковываемых файлов (в уязвимых реализациях будут распакованы не те файлы, что были видны в архиве). При этом уязвимость в пакетном менеджере uv отмечена как неопасная, так как если атакующий может влиять на содержимое исходного архива, нет смысла усложнять атаку и эксплуатировать уязвимость через вложенный архив, когда можно добиться выполнения кода через сборочные сценарии в основном архиве.

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

Например, атакующий может загрузить модифицированный архив в репозиторий PyPI, который пройдёт проверку на основе анализа содержимого основного архива, содержащего легитимный файл pyproject.toml. При обработке данного пакета при помощи утилиты uv легитимный pyproject.toml будет заменён на вредоносный вариант из вложенного архива, содержащий команды, которые будут выполнены при сборке на компьютере разработчика или в системе непрерывной интеграции. Аналогично, можно организовать перезапись файлов контейнера при извлечении образа контейнера при помощи инструментария testcontainers.

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

 , ,

Ygor
()

В Rust переименовали главную ветку rust-lang/rust с master на main

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

Свершилось! Разработчики языка программирования Rust переименовали главную ветку проекта с master на гендерно-нейтральное main.

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

 

Zhbert
()

ripgrep 15.0.0

Группа Open Source

16 октября, после более года разработки, состоялся выпуск 15.0.0 быстрой кроссплатформенной консольной утилиты ripgrep, предназначенной для многопоточного рекурсивного поиска текста в файлах.

По умолчанию ripgrep использует поиск по регулярному выражению в файлах текущей директории, учитывает правила .gitignore и автоматически пропускает двоичные файлы и скрытые файлы и директории.

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

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

 ripgrep, , , ,

dataman
()

Mergiraf — новый движок разрешения конфликтов в коде

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

Mergiraf – новый движок для git merge, учитывающий синтаксис языков программирования и позволяющий в автоматической режиме решать конфликты, например, в случаях, где изменения в одной строчке производятся над независимыми синтаксическими элементами или где порядок изменений не играет роли. Список поддерживаемых языков программирования и форматов данных весьма обширен. Для работы с исходным кодом используется библиотека Tree-sitter, что также позволяет легко добавлять поддержку новых языков при наличии парсера для TS.

Сам Mergiraf написан на языке Rust, исходный код опубликован на условиях GNU GPL 3.

>>> Документация по использованию

>>> Исходный код

 , , ,

hateyoufeel
()

Tatuin v0.24.0 со своей БД для задач и улучшеным UX

Группа Open Source

После почти месяца разработки и более 100 коммитов я рад представить новую версию агрегатора задач Tatuin v0.24.0.

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

>>> Все изменения

 , , , ,

panter_dsd
()

Linux 6.17

Linux 6.17
Группа Ядро Linux

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.17. Среди наиболее заметных изменений: повышение производительности Btrfs, системные вызовы file_getattr() и file_setattr(), унификация однопроцессорных и многопроцессорных конфигураций в планировщике задач, модуль DAMON_STAT со статистикой доступа к памяти, поддержка Live-патчей на системах ARM64, отправка core-дампов через сокет AF_UNIX, лимитирование SCHED_EXT через cgroup, упрощённая настройка защиты от уязвимостей в CPU, сборка в Clang с инициализацией переменных в стеке, защита от подмены /proc, расширение подсистемы RV (Runtime Verification), ограничение сокетов AF_UNIX через AppArmor, алгоритм контроля перегрузок TCP DualPI2.

В новую версию принято 14334 исправлений от 2118 разработчиков, размер патча – 46 МБ (изменения затронули 12841 файлов, добавлено 646654 строк кода, удалено 398782 строк). В прошлом выпуске было 15924 исправления от 2145 разработчиков, размер патча – 50 МБ . Около 43% всех представленных в 6.17 изменений связаны с драйверами устройств, примерно 12% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 14% связано с сетевым стеком, 4% – с файловыми системами и 3% c внутренними подсистемами ядра.

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

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

 , , ,

dataman
()

CADBase 0.3 — обновление платформы и интеграций

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

CADBase — это цифровая платформа для публикации, хранения и версионирования инженерных данных: чертежей, моделей компонентов, параметров, модификаций и сопроводительной документации. Название отражает концепцию «САПР-базы» — базы данных для хранения и управления данными систем автоматизированного проектирования (моделей, чертежей, спецификаций и т.п.). Платформа обладает широкими возможностями интеграции с системами проектирования, моделирования, анализа и симуляции, а также редакторами 2D и 3D анимации.

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

>>> Подробнее о платформе

 , , , ,

margarin
()

Релиз Diesel 2.3.0

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

Diesel — это безопасный, высокопроизводительный и расширяемый ORM и генератор SQL-запросов для языка Rust. Diesel гарантирует корректность генерируемых SQL-запросов и совместимость между типами, используемыми в коде приложения, и типами в БД. Код, который сгенерировал бы падающий запрос, попросту не скомпилируется. При этом, Diesel является zero-cost абстракцией: производительность кода, использующего Diesel такая же, как производительность кода на C, напрямую вызывающего SQL-запросы.

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

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

 diesel, , ,

provaton
()

uutils 0.2.0 и 0.2.2, вариант GNU Coreutils на языке Rust

uutils 0.2.0 и 0.2.2, вариант GNU Coreutils на языке Rust
Группа Open Source

6 сентября опубликован выпуск 0.2.0 проекта uutils coreutils (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.

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

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

 , , , ,

PunkPerson
()

Tatuin v0.23.0 - агрегатор задач с поддержкой CalDAV

Группа Open Source

После месяца работы и более 100 коммитов выпущена версия Tatuin v0.23.0 с двумя новыми провайдерами: iCal и CalDAV. Первый работает только для чтения, а второй поддерживает полный рабочий процесс.

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

На данный момент поддерживаются следующие провайдеры: Todoist, Obsidian, GitLab TODO, GitHub Issues, iCal, CalDAV.

>>> Homepage

>>> v0.23.0 changes

>>> v0.23.0

 , , , ,

panter_dsd
()

В Ubuntu по умолчанию задействован sudo-rs, написанный на Rust

Группа Ubuntu Linux

В ежедневно обновляемых экспериментальных сборках Ubuntu, отражающих развитие осеннего выпуска Ubuntu 25.10, вместо утилиты sudo по умолчанию задействован проект sudo-rs, написанный на языке Rust. Решение использовать sudo-rs в Ubuntu было принято в мае, но до последнего времени не было ясно, успеют ли разработчики реализовать в sudo-rs необходимые отсутствующие возможности до перехода Ubuntu 25.10 на стадию заморозки.

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

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

 , , ,

PunkPerson
()

Proton Authenticator — новое открытое приложение для безопасной двухфакторной аутентификации

Proton Authenticator — новое открытое приложение для безопасной двухфакторной аутентификации
Группа Open Source

Proton Authenticator — это бесплатное и открытое приложение для безопасной двухфакторной аутентификации от создателей ProtonMail и ProtonVPN.

С помощью 2FA вам нужно будет ввести вторую часть информации, помимо пароля, при входе в аккаунт. Обычно это шестизначный код, сгенерированный вашим приложением-аутентификатором. Даже если кто-то знает ваш пароль, он не сможет получить доступ к вашему аккаунту. Хотя SMS-коды аутентификации являются еще одним распространенным вариантом, они остаются уязвимыми для атак с подменой SIM-карты. Приложение-аутентификатор гораздо сложнее взломать, так как оно генерирует коды локально на вашем устройстве, и каждый код истекает через 30 секунд.

Основные преимущества:

  • Открытый исходный код.
  • Безопасное шифрование.
  • Поддержка основных настольных и мобильных ОС.
  • Поддержка работы в режиме оффлайн.
  • Быстрое импортирование всех существующих токенов 2FA в Proton Authenticator.
  • Синхронизации кодов 2FA на всех устройствах со сквозным шифрованием.
  • Создание автоматических резервных копий.
  • Защита аккаунта с помощью биометрии или PIN-кода.
  • Возможность использовать Proton, iCloud или локальный метод синхронизации.

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

 proton authenticator, , , ,

fail2ban
()

Rust 1.88.0

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

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

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

  1. Синтаксис для описания функций без пролога и эпилога. Тело таких функций обязано состоять из naked_asm! блока :
#[unsafe(naked)]
pub unsafe extern "sysv64" fn wrapping_add(a: u64, b: u64) -> u64 {
    // Equivalent to `a.wrapping_add(b)`.
    core::arch::naked_asm!(
        "lea rax, [rdi + rsi]",
        "ret"
    );
}
  1. Возможность объявлять две и более переменных в условных выражениях if / while:
if let Channel::Stable(v) = release_info()
    && let Semver { major, minor, .. } = v
    && major == 1
    && minor == 88
{
    println!("`let_chains` was stabilized in this version");
}
  1. В DSL для условной компиляции cfg добавлены константы true и false, которые так же стали доступны в макросе cfg!.

  2. Добавлено предупреждение о попытке обращения к нулевому указателю для функций, чьи инварианты корректной работы требуют не нулевых адресов. К примеру попытка сконструировать объект std::slice по нулевому адресу:

// Undefined behavior
unsafe { std::slice::from_raw_parts(ptr::null(), 1); }

приведёт к выдаче сообщения. По умолчанию это предупреждение имеет уровень deny-by-default, то есть будет рассмотрено компилятором как ошибка.

Все нововведения перечислены в списке изменений.

>>> Announcing Rust 1.88.0

 

LamerOk
()