LINUX.ORG.RU

Rust


266

21

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

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

Команда разработчиков Rust запустила опрос по производительности компилятора

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

Это прямой перевод записи из блога Rust.

Мы за­пу­ска­ем Опрос по про­из­во­ди­тель­но­сти ком­пи­ля­то­ра Rust.

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

Ког­да речь идёт о про­из­во­ди­тель­но­сти ком­пи­ля­ции, важ­но отме­тить, что это не всег­да так же про­сто, как опре­де­лить, на­сколь­ко дол­го rustc ком­пи­ли­ру­ет крейт. Есть мно­го раз­но­образ­ных ра­бо­чих про­цес­сов ра­зра­бо­тки, ко­то­рые мо­гут за­ста­влять ид­ти на ком­про­мис­сы, и тех, ко­то­рые мо­гут быть за­труд­не­ны раз­лич­ны­ми фак­то­ра­ми, та­ки­ми как ин­те­гра­ция ком­пи­ля­то­ра с исполь­зу­емой сбо­роч­ной си­сте­мой.

Для то­го, что­бы луч­ше по­нять эти ра­бо­чие про­цес­сы, мы при­го­то­ви­ли Опрос по про­из­во­ди­тель­но­сти ком­пи­ля­то­ра Rust. Он ак­цен­ти­ро­ван имен­но на про­из­во­ди­тель­но­сти ком­пи­ля­ции, что поз­во­ля­ет нам по­лу­чить бо­лее по­дроб­ные дан­ные, чем те, ко­то­рые мы обыч­но по­лу­ча­ем из еже­год­но­го опро­са «State of Rust». Дан­ные из это­го опро­са по­мо­гут нам по­нять ме­ста, на ко­то­рых нам сле­ду­ет со­сре­до­то­чить уси­лия по улуч­ше­нию про­дук­тив­но­сти Rust-ра­зра­бот­чи­ков.

Прой­ти опрос вы мо­же­те здесь.

Про­хож­де­ние дол­жно за­нять приб­ли­зи­тель­но 10 ми­нут ва­ше­го вре­ме­ни. Опрос пол­но­стью ано­ни­мен. Мы бу­дем при­ни­мать фор­мы до 7 и­юля 2025 го­да. По окон­ча­нии опро­са мы обра­бо­та­ем ре­зуль­та­ты и опуб­ли­ку­ем клю­че­вые мо­мен­ты в этом бло­ге.

Приг­ла­ша­ем вас при­нять уча­стие в опро­се, ведь ва­ши от­ве­ты по­мо­гут нам улуч­шить про­из­во­ди­тель­ность ком­пи­ля­ции Rust. Спа­си­бо!

>>> Запись в блоге Rust

 , ,

MrCookie
()

Microsoft открыл код WSL и текстового редактора Edit

Microsoft открыл код WSL и текстового редактора Edit
Группа Linux General

Microsoft опубликовал исходные тексты подсистемы wsl. Для желающих присоединиться к разработке запущен сайт wsl.dev.

WSL предоставляет виртуальную машину с полноценным ядром Linux (на базе ветки 6.6), в которой могут запускаться дистрибутивы Linux. Ядро включает специфичные для WSL изменения, такие как оптимизации для сокращения времени запуска и уменьшения потребления памяти, возможность возвращения Windows освобождённой Linux-процессами памяти и настройки для исключения лишних драйверов и подсистем. Система устанавливается в отдельный дисковый образ (VHD) c файловой системой ext4 и виртуальным сетевым адаптером.

Компоненты WSL, связанные с ядром Linux и графическим стеком wslg, применяемым для для запуска GUI-приложений на базе Wayland и X11, развивались в открытом виде изначально, но весь сопутствующий инструментарий оставался проприетарным. Отныне в число открытых переведены следующие компоненты:

  • утилиты командной строки wsl.exe, wslconfig.exe и wslg.exe, используемые для взаимодействия с WSL;
  • сервис wslservice.exe, применяемый для запуска виртуальной машины, активации в ней Linux-окружения и монтирования файловых систем;
  • фоновые процессы, запускаемые в Linux-окружении для доступа к функциональности WSL. Например, процесс init для начальной инициализации, gns для настройки сетевого доступа, localhost для перенаправления портов;
  • процесс plan9 с реализацией сервера Plan9, применяемого в WSL для совместного доступа к Linux-файлам из Windows.

Остаются частью Windows и не открыты в настоящее время:

  • драйвер ядра Lxcore.sys, применяемый для запуска исполняемых файлов в формате ELF через слой обеспечения совместимости;
  • драйвер P9rdr.sys и библиотека p9np.dll, обеспечивающие перенаправление доступа к ФС «\wsl.localhost» при обращении из Windows к Linux.

Одновременно компания Microsoft открыла под лицензией MIT исходный код консольного текстового редактора Edit, написанного на модном языке Rust и нацеленного на поставку по умолчанию в 64-разрядных версиях Windows. В ближайшие месяцы редактор будет предложен для ознакомления и тестирования в сборках Windows Insider Program, после чего войдёт в штатную поставку Windows 11.

В редакторе попытались реализовать современный интерфейс с управлением в стиле VS Code. Целью заявлено предоставление интерфейса, который был бы понятен и прост в использовании даже для тех, кто не имеет опыта работы в терминале. Редактор компактен и занимает всего 250kB на диске. Из возможностей упомянуты: система меню, управление клавиатурными комбинациями или мышью, поддержка вкладок и одновременной работы с несколькими файлами, операции поиска и замены, режим автоматического переноса текста на новую строку.

>>> Подробности (OpenNet)

 , , , ,

Ygor
()

Языку программирования Rust исполнилось 10 лет

Группа Open Source

15 мая этого года исполнилось 10 лет с момента выхода первой стабильной версии языка программирования Rust, разрабатываемого Mozilla совместно с сообществом.

Основные итоги за это время:

Попытки собрать истории растового успеха: раз, два.

>>> Официальный сайт

 , ,

anonymous
()

Ubuntu 25.10 переходит на sudo, написанный на Rust

Группа Ubuntu Linux

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

sudo-rs разработана Trifecta Tech Foundation (TTF), некоммерческой организацией, которая создает безопасные компоненты с открытым исходным кодом для инфраструктурного программного обеспечения.

В sudo-rs обеспечена совместимость с классическими утилитами sudo и su, что даёт возможность использовать sudo-rs в качестве прозрачной замены sudo в системе. Для пользователей, не желающих переходить на новые утилиты из uutils и sudo-rs, в Ubuntu 25.10 будет предусмотрена возможность обратного перехода на привычные варианты системных утилит coreutils и sudo.

Замена sudo на sudo-rs — часть глобального плана по повышению безопасности и качества Ubuntu путём перехода на компоненты, написанные на языке Rust.

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

 , ,

Zhbert
()

Разработчики Gnome удалят из С++ лишние фичи

Группа Open Source

Как всем известно, язык программирования С++, пожалуй, самый большой по объему из ЯП. Даже программисты, которые пишут на нем десятки лет не могут похвастаться, что знают его полностью. В связи с чем комитет по стандартизации С++ принял нелегкое решение: чтобы язык оставался конкурентоспособным перед напирающими новыми ЯП, например rust, нужно удалить из него все легаси фичи, написаные непонятно какими гоблинами в мохнатые восьмидесятые. В этом помогут хорошо известные на этом форуме разработчики Gnome, которые в свое время удалили все лишние фичи из своей DE, тем самым сделав ее вне конкуренции. Они будут удалять все фичи, пока не удалят все «плюсы» и не дойдут до С, из которого и вылез C++, но на этом не остановятся, оставят от языка только минимальный C--.

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

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

 , , ,

goingUp
()