LINUX.ORG.RU

Rust


266

22

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

Части Ladybird переписывают на Rust при помощи LLM

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

Ladybird переходит на частичное использование Rust вместо C++. Разработчики давно искали memory-safe альтернативу: Swift не подошёл из-за слабых возможностей взаимодействия с C++ и ограниченной поддержки вне Apple. Rust оказался лучше: зрелая экосистема, многие контрибьюторы уже знают язык, а Firefox и Chromium уже используют его.

Первым портировали LibJS — движок JavaScript (лексер, парсер, AST, генератор байткода). Работу вёл человек с помощью Claude Code и Codex: ~25 000 строк Rust за две недели вместо нескольких месяцев вручную. Результат — полная идентичность выходных данных с C++-версией, ноль регрессий в тестах (52 898 тестов test262, 12 461 собственных тестов).

Код намеренно стилистически близок к C++-оригиналу — идиоматичность придёт позже. Полного перехода на Rust не планируется: C++ и Rust будут сосуществовать, а портирование будет постепенным и управляться основной командой.

>>> ladybird.org

 , , ,

ZSkunk
()

Linux 6.19

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

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.19. Среди наиболее заметных изменений: подсистема Live Update Orchestrator, поддержка PCIe Link Encryption, системный вызов listns, режим Zero-Copy Receive в io_uring, поддержка ARM-расширения MPAM, klp-build для генерации live-патчей, поддержка архитектуры LoongArch32, QoS для s2idle, оптимизация подсистемы аудита, Intel LASS для защиты от Spectre, поддержка хэшей SHA-3 и BLAKE2b, механизм Confidential VMBus, TX-оптимизации в сетевой подсистеме, протокол CAN XL, API для аппаратного ускорения HDR-вывода.

В анонсе новой версии Линус сообщил, что следующему выпуску ядра будет присвоен номер 7.0, так как в ветке 6.x накопилось достаточного выпусков для смены первого числа в номере версии (в своё время выпуск 6.0 был сформирован следом за 5.19). Смена нумерации осуществляется из эстетических соображений и является формальным шагом, снимающим дискомфорт из-за накопления большого числа выпусков в серии. Линус пошутил, что его сбивают с толку большие числа для которых не хватает пальцев на руках и ногах. При этом формально повод для значительного изменения номера версии есть, так как начиная со следующего выпуска поддержку Rust решено перевести из экспериментальных в основные возможности ядра.

В новую версию принято 15657 исправлений от 2237 разработчиков, размер патча – 52 МБ (изменения затронули 13682 файла, добавлено 794649 строк кода, удалено 335498 строк). В прошлом выпуске было 15035 исправлений от 2217 разработчиков, размер патча – 45 МБ. Около 40% всех представленных в 6.19 изменений связаны с драйверами устройств, примерно 13% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% – с файловыми системами и 3% c внутренними подсистемами ядра.

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

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

 , , ,

dataman
()

Numbat 1.21.0

Группа Open Source

Вышла версия 1.21.0 высокоточного консольного научного калькулятора numbat, написанного на языке Rust и распространяемого по лицензии MIT и/или Apache 2.0.

Отличительные особенности Numbat:

  • полная поддержка физических размерностей и единиц измерения;
  • язык программирования со статической типизацией для научных вычислений;
  • автодополнение имён функций, единиц измерения и переменных;
  • поиск по истории ввода;
  • большой набор встроенных функций и констант: математические, дата и время, обработка строк и другие.
  • и многое другое.

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

>>> Документация

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

 , , , ,

CrX
()

GStreamer 1.28

Группа Open Source

Сегодня вышла версия GStreamer 1.28 — новейшее дополнение к широко используемой мультимедийной платформе с открытым исходным кодом.

В версии 1.28 продолжается работа по переписыванию большего количества функций на языке программирования Rust с целью обеспечения безопасной работы с памятью. В GStreamer встроен детектор объектов YOLOX. Разработчики, использующие Rust, могут создавать приложения для анализа видео в реальном времени, добавляя эти новые элементы в свой медиаконвейер.

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


>>> Скачать

>>> Phoronix

 , ,

splinter
()

Проект Xfce4 разрабатывает собственный Wayland-композитор

Группа Open Source

Разработчики Xfce4 – одного из старейших десктопных окружений для Linux – сообщили о начале работы над новым композитором, который призван заменить имеющийся в составе Xfce4 оконный менеджер для систем на основе Wayland. Проект получил название Xfwl4. Предполагается, что он должен максимально повторять функциональность и поведение имеющегося Xfwm4 (насколько это возможно реализовать на Wayland). Для работы над проектом был нанят разработчик Брайан Террикон, уже давно сотрудничающий с командой Xfce4.

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

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

>>> Xfwl4 - The roadmap for a Xfce Wayland Compositor

 , , ,

slepoy_pew
()

Rust 1.93

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

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

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

>>> Источник

 

XMPP
()

Tatuin v0.26.0

Группа Open Source

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

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

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

 , , , ,

panter_dsd
()

Lightning Image Viewer 0.5.1

Группа Мультимедиа

Lightning Image Viewer – легковесное приложение для просмотра изображений на десктопном компьютере со своеобразным UX, который автор находит наиболее удобным.

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

>>> Страница релиза на GitHub

 , , , ,

shatsky
()

Numbat 1.17.0

Группа Open Source

27 декабря, после почти одиннадцати месяцев разработки, состоялся выпуск 1.17.0 высокоточного консольного научного калькулятора numbat, написанного на языке Rust и распространяемого по лицензии MIT и/или Apache 2.0.

Отличительные особенности Numbat:

  • полная поддержка физических размерностей и единиц измерения;
  • язык программирования со статической типизацией для научных вычислений;
  • автодополнение имён функций, единиц измерения и переменных;
  • поиск по истории ввода;
  • большой набор встроенных функций и констант: математические, дата и время, обработка строк и другие.
  • и многое другое.

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

>>> Документация

>>> Таблица сравнения с другими научными калькуляторами и языками программирования

>>> Список изменений версии 1.17.0 на GitHub

 , , , ,

dataman
()

CVE-2025-68260: Первая уязвимость в коде Linux на Rust

Группа Безопасность

Грег Кроа-Хартман анонсировал первую уязвимость с присвоенным CVE в части кода на Rust в Mainline-ядре.

Уязвимость обнаружена в коде подсистемы Binder, переписанном на Rust. Возможное состояние гонки в unsafe блоке может повредить указатели связанного списка и привести к краху ядра.

Уязвимость воспроизводится в ядре 6.18 при использовании нового, переписанного на Rust драйвера Binder.

>>> Оригинал новости на Phoronix

 , ,

mittorn
()

Завершение эксперимента с Rust в ядре Linux

Группа Ядро Linux

Начатый в ядре 6.1 эксперимент по добавлению кода на Rust в ядро Linux, в котором участвовало 173 разработчика, официально завершён: соответствующая секция убрана из документации ядра.

По словам мейнтейнера Rust for Linux: Rust is here to stay. Таким образом Rust становится официальным языком разработки ядра наравне с С.

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

>>> Анонс от Miguel Ojeda

 ,

zabbal
()

Новый вирус-шифровальщик 01flip

Новый вирус-шифровальщик 01flip
Группа Безопасность

Новый шифровальщик 01flip, написанный на Rust, всё чаще начал появляться в атаках на организации в Азиатско-Тихоокеанском регионе. По данным подразделения Unit 42 компании Palo Alto Networks, активность пока затронула ограниченное число целей, но включает структуры, связанные с критической инфраструктурой в Юго-Восточной Азии.

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

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

 , , ,

DrRulez
()

В Rust-репозитории crates.io выявлены четыре вредоносных пакета

В Rust-репозитории crates.io выявлены четыре вредоносных пакета
Группа Безопасность

Разработчики языка Rust предупредили о выявлении в репозитории crates.io пакетов finch-rust, sha-rust, evm-units и uniswap-utils, содержащих вредоносный код (про последние два отдельная новость на ЛОРе была опубликована ранее).

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

>>> Источник

 , ,

Sm0ke85
()

Ferrocene 25.11.0

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

Вышла новая версия Ferrocene – компилятора языка Rust, предназначенного для написания особенно чувствительных к безопасности и надёжности систем. От эталонной реализации Ferrocene отличается наличием сертификатов ISO 26262 (ASIL D), IEC 61508 (SIL 3) и IEC 62304 (Class C).

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

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

 , , ,

hateyoufeel
()

geoip 0.1.0

Группа Open Source

Тихо и незаметно вышла первая версия проекта geoip — self-hosted сервиса GeoIP REST API, написанного на Rust.

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

>>> GitHub

 , , ,

KivApple
()

Linux 6.18

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

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.18. Среди наиболее заметных изменений: dm-pcache для дискового кэширования в энергонезависимой памяти (PMEM), удаление Bcachefs, online-режим проверки XFS, драйверы Binder (Android IPC) и Tyr (GPU Mali) на Rust, возможность создания USB-драйверов на Rust, оптимизация кэширования в аллокаторе памяти SLUB, адресация пространств имён по файловым дескрипторам, ускорение работы подкачки (swap), верификация BPF-программ по цифровой подписи, виртуализация Intel CET в KVM, сетевой протокол PSP (гибрид TLS и IPsec), поддержка IP-расширения AccECN, оптимизация UDP-стека.

В новую версию принято 15035 исправлений от 2217 разработчиков, размер патча – 45 МБ (изменения затронули 13142 файлов, добавлено 601897 строк кода, удалено 355006 строк). В прошлом выпуске было 14334 исправлений от 2118 разработчиков, размер патча – 46 МБ. Около 40% всех представленных в 6.18 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% – с файловыми системами и 3% c внутренними подсистемами ядра.

Основные изменения в ядре 6.18 (kernelnewbies.org, lwn.net, OpenNET):

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

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

 , , ,

dataman
()

Вышел servo 0.0.2

Группа Mozilla

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

В данном выпуске появился 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 (github.com) и 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
()