Rust
8.46K subscribers
451 photos
41 videos
3 files
991 links
Rust programming language

По всем вопросам- @workakkk

#VRHSZ
Download Telegram
🌐 Умный DNS-резолвер Numa

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

🚀 Основные моменты:
- Портативный, работает на любом устройстве.
- Блокировка рекламы и кэширование по умолчанию.
- Поддержка DNSSEC и DNS-over-TLS для шифрования.
- Автоматическое обнаружение устройств в локальной сети.
- Легкий в использовании интерфейс и настройка.

📌 GitHub: https://github.com/razvandimescu/numa
🔥268🥰4🤗1
🦀 Rust 1.96 вышел: новые range-типы, удобные assert-матчи и важное изменение для WebAssembly

Rust 1.96.0 выглядит как минорный релиз, но внутри есть несколько вещей, которые реально стоит заметить.

Главное изменение - новые core::range::Range* типы. Старые Range из core::ops напрямую реализуют Iterator, поэтому их нельзя нормально сделать Copy без неприятных ловушек. Новые range-типы идут другим путём: они реализуют IntoIterator, а значит могут быть Copy.

Теперь можно хранить диапазоны в Copy`-структурах без костылей вроде раздельных `start и end.


use core::range::Range;

#[derive(Clone, Copy)]
pub struct Span(Range<usize>);


Ещё одно приятное обновление - assert_matches! и debug_assert_matches!.

Это как assert!(matches!(...)), только при падении выводится значение через Debug, а значит тесты и отладка становятся заметно понятнее. Макросы не добавили в prelude, их нужно импортировать вручную из core или std.

Для WebAssembly есть изменение построже: undefined symbols теперь становятся ошибкой линковки, а не молча превращаются в импорты из "env". Это может сломать часть старых сборок, зато такие проблемы теперь ловятся раньше, а не всплывают странным поведением на рантайме.

Из важного по безопасности: в Rust 1.96 исправлены две уязвимости Cargo для пользователей сторонних registry. Пользователей crates.io они не затрагивают.

Обновление стандартное:


rustup update stable


Релиз без фейерверков, но полезный: меньше footgun'ов с range, удобнее проверки в тестах, строже WebAssembly-сборки и пара закрытых дыр в Cargo.

https://blog.rust-lang.org/2026/05/28/Rust-1.96.0/
22👍12🔥82🥰1👏1🤗1
👣 В Rust нашли интересный способ ускорить pretty printer - штуку, которая красиво форматирует код, JSON, Lisp и другие структуры.

Обычно есть два подхода.

Первый - собрать всё дерево документа целиком. Так делают Wadler-style pretty printers. Это выразительно, но в Rust быстро упирается в память, аллокации и указатели.

Второй - стримить вывод по кускам. Так работает Oppen-style подход. Он легче по памяти, но часто принимает локально хорошие решения и не всегда находит глобально лучший layout.

Автор предлагает третий вариант: не хранить документ как рекурсивный enum, а описывать его через trait Doc.

То есть Text, Concat, Group, Nest и другие элементы становятся отдельными типами, которые умеют сами себя рендерить через layout().

Звучит как мелкая архитектурная правка, но эффект большой: меньше лишних аллокаций, меньше прыжков по памяти, гибче управление Box, Rc и другими стратегиями хранения.

В proof-of-concept реализации pye автор получил до 60x ускорения по сравнению с прямой Rust-реализацией алгоритма из paper “A Pretty Expressive Printer”. А в обновлённых тестах вариант с таким дизайном и greedy-алгоритмом местами обгонял pretty и arena-версию больше чем в 10 раз.

В Rust производительность часто ломается не только на алгоритме, но и на форме данных.

Иногда enum выглядит красиво, но trait-based дизайн лучше ложится на память, ownership и реальные оптимизации компилятора.

blog.wybxc.cc/blog/pretty-printer-pye/

#Rust #RustLang #Compilers #OpenSource #SystemsProgramming
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍116❤‍🔥3🥰1👌1
Rust Coreutils 0.9.0 вышел с важным обновлением: закрыли 44 уязвимости, но формальная совместимость с GNU Coreutils просела до 90,58%.

Звучит как откат, но причина в другом. Тестовый набор обновили до GNU Coreutils 9.11, туда добавили 25 новых проверок. После этого uutils прошёл 625 тестов, а 56 завалил. В прошлой версии было 630 успешных и 21 неуспешный тест, отсюда падение с 94,74%.

Самая важная часть релиза - безопасность. После аудита Zellic исправили 44 уязвимости. Много проблем было связано с расхождением поведения относительно GNU Coreutils и гонками файловой системы. Типичный сценарий: программа проверяет файл, а между проверкой и действием его успевают заменить на симлинк.

Для обычного запуска это неприятно. Для cp, chmod или mv от root это уже критично: можно добиться копирования, изменения прав или перезаписи чужого файла. Для защиты усилили безопасное копирование через uucore::safe_copy.

Параллельно продолжается техническая чистка:

- id, tr, timeout, sort, wc, tail, cp, who, factor переводят на rustix
- сокращают количество unsafe
- в cat, wc, head, tail, yes, cp, tee, unexpand используют splice(), tee() и pipe() для работы без лишнего копирования данных
- подтянули совместимость numfmt, date, tr, cksum, factor, head, stat, sort
- для ln, dd, mktemp, tty добавили сборку под WebAssembly/WASI

Хороший релиз именно для системного Rust. Здесь видно, что переписать coreutils на Rust - это не только «убрать C ради безопасности». Нужно годами догонять поведение GNU, ловить тонкие файловые гонки, вычищать unsafe и сохранять производительность на низком уровне.

Совместимость временно просела, но проект стал безопаснее и технически чище.

https://github.com/uutils/coreutils/releases/tag/0.9.0
🔥378🥰4🤗2👍1😁1
⚡️ Microsoft открыла Coreutils для Windows - знакомые Unix-команды теперь ставятся одной командой

Microsoft выпустила первый релиз Coreutils for Windows. Это набор привычных *nix-инструментов для Windows, написанных на Rust.

Внутри:

- Rust-версия GNU Coreutils
- реализация FindUtils
- свежая реализация Grep
- shim для совместимости с DOS sort и find
- PowerShell-обёртка для glob-паттернов как в Unix

Установка через winget:


winget install Microsoft.Coreutils


Интересный момент: GNU grep тоже переписали на Rust и уже выкатили первый релиз с тестами, бенчмарками и ранними контрибуциями.

Пока это не финальная замена старым инструментам - в первом релизе ожидают баги и ещё есть работа по производительности. Но сам вектор понятен: Microsoft всё активнее тащит Unix-like tooling в Windows, а Rust становится нормальным языком для системных утилит.

https://github.com/microsoft/coreutils
23👍12😁4🔥2🥰1🤣1🤗1
Forwarded from Machinelearning
Media is too big
VIEW IN TELEGRAM
✔️ ChatGPT получил динамическое обновление контекста

OpenAI начала развертывание автоматической фоновой памяти для ChatGPT в США на тарифах Plus и Pro. В основе системы лежит механизм фоновой организации данных Dreaming.

Модель самостоятельно извлекает контекст, детали рабочих проектов и предпочтения из множества сессий без прямых команд на запоминание. Главное отличие новой архитектуры - динамическое обновление фактов.

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

В ближайшие недели OpenAI расширит географию доступа и откроет функцию для пользователей бесплатных аккаунтов.
openai.com

✔️ xAI открыла API модели Grok Imagine Video 1.5

Компания выпустила превью-версию модели Grok Imagine Video 1.5 для генерации 720p-видео по картинке. Релиз позиционируется как конкурент Seedance и Google Veo.

Модель анимирует изображение по текстовым промптам: задается направление движения камеры, динамика и атмосфера сцены. Алгоритм сохраняет оригинальную детализацию и схему освещения исходника.

Также поддерживается склейка нескольких планов в длинные ролики с сохранением визуальной консистентности. Доступ к новинке открыт через API.
x.ai

✔️ Nvidia купила ИИ-стартап Kumo

Сделка оценивается в 400 млн долларов. Наработки Kumo интегрируют в платформу Nvidia AI Foundry, где корпоративные клиенты смогут обучать кастомные модели на внутренних реляционных базах.

Стек Kumo адаптирован для анализа сложных структур из множества связанных таблиц, которые тяжело обрабатывать классическими LLM. Алгоритмы комбинируют графовое машинное обучение и генерацию синтетических данных. Платформа решает задачи предиктивной аналитики: от прогнозирования оттока пользователей до оценки вероятности финансовых дефолтов.

В рамках сделки в Nvidia перейдет команда стартапа. Среди действующих клиентов Kumo - DoorDash, Reddit, Databricks и Snowflake. Актуальная модель стартапа вышла в апреле этого года.
theinformation.com

✔️ Релиз Reve 2.0: генерация 4K-изображений через редактируемые макеты

Reve представила новый генератор картинок на архитектуре Large Layout Model. Система отходит от классической генерации по тексту и работает через макеты: каждый визуальный элемент получает точные координаты, размер и описание.

Модель прошла дополнительный пространственный претрейн на базе Qwen. Изображение представляется как код, что позволяет управлять результатом через промпт или точечно редактировать JSON-структуру макета.

По заявлению авторов, на обучение ушло в 10 раз меньше вычислительных мощностей по сравнению с корпоративными аналогами. Модель занимает вторую строчку в бенчмарке Text-to-Image ArenaAi, обходя Nano Banana 2 и GPT-Image-1.5.
blog.reve.com

✔️ Трафик ботов и ИИ-агентов впервые превысил активность людей

По данным Cloudflare, доля машинного веб-трафика достигла 57,5%, превысив активность людей (42,5%). По словам гендиректора компании Мэттью Принса, рубеж пройден на несколько лет раньше прогнозируемого 2027 года.

Рост обусловлен не классическими скриптами (краулеры, спам, DDoS-сети), а автономными ИИ-агентами. Алгоритмы парсят контент для обучения нейросетей и выполняют многошаговые задачи от лица пользователей: мониторят цены, взаимодействуют со службами поддержки и оформляют заказы.

Cloudflare классифицирует трафик верифицированных ботов и ИИ-агентов отдельно с прошлого года. Точную дату превышения машинного трафика над человеческим определить сложно из-за специфики метрик.
CEO CloudFlare в сети Х

@ai_machinelearning_big_data

#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱76👍3🔥2🤯1🎉1🤣1
Rust Project показал, как на самом деле выглядит поддержка большого языка, когда вокруг компилятора живут отдельные инструменты: Cargo, Clippy, rustfmt, rust-analyzer, Miri и другие.

Проблема простая: эти проекты удобнее развивать в отдельных репозиториях, потому что у них свои команды, CI, ревью и процессы. Но при этом они должны регулярно синхронизироваться с rust-lang/rust, потому что nightly-сборки, rustup-компоненты и внутренние compiler API завязаны на центральный репозиторий.

Обычные варианты плохо масштабируются:

- monorepo даёт атомарные изменения, но делает вход в проект тяжелее и привязывает всех к процессам compiler team
- git submodules простые, но ломают DX: забытые --recursive, грязные состояния, случайные изменения SHA и невозможность нормально менять родительский проект и инструмент в одном PR
- git subtree лучше подходит для атомарных изменений, но на масштабе Rust стал слишком медленным, особенно для Miri, где синхронизация могла не завершаться часами

Поэтому Rust использует Josh - инструмент на Rust для быстрых и обратимых фильтров поверх git-истории. В статье его по сути называют “git subtree on steroids”: тот же смысл bidirectional sync, но быстрее и с более чистой историей.

Поверх Josh команда сделала josh-sync - небольшой Rust-инструмент, который унифицирует pull/push-синхронизацию между rust-lang/rust и дочерними проектами. Часть операций уже автоматизирована через GitHub Actions: CI может сам открыть PR на синхронизацию и сообщить в Zulip, если нужен ручной разбор конфликта.

Сейчас Josh используют для Miri, Rust Analyzer, compiler-builtins, stdarch и Rust Compiler Development Guide. Clippy и часть других проектов ещё остаются на subtree, но план - постепенно мигрировать и их.

Это пример инженерной инфраструктуры вокруг языка. Rust масштабируется не только через типы, borrow checker и compiler work, но и через скучную, сложную механику сопровождения десятков связанных репозиториев, где один breaking change во внутреннем API не должен случайно сломать nightly-инструменты.

Josh здесь закрывает именно эту боль: сохранить независимость репозиториев, но при этом дать возможность синхронно менять компилятор и завязанные на него инструменты без адского ручного sync-процесса.

https://blog.rust-lang.org/inside-rust/2026/06/04/how-josh-helps-rust-manage-code-across-multiple-repositories/
21👍10🥰5👌2🤗1
😁42😭7👍43💯2🔥1🏆1
🔥 Продвинутый Rust без учебных игрушек

Базу уже прошли? Тогда следующий шаг - production-разработка.

На Stepik идет скидка 60% на продвинутый курс по Rust для тех, кто хочет не просто знать синтаксис, а строить реальные системы.

Внутри: async, unsafe, gRPC, lock-free, observability, Kafka, NATS, axum, tower, CI/CD и канареечный деплой.

Финальный проект - production-ready feed-сервис от архитектуры до релиза.

21 модуль, 84 урока, 400+ проверочных шагов.

Если хотите перейти от маленьких Rust-утилит к коммерческой разработке, сейчас хороший момент зайти: https://stepik.org/a/285608/pay
5👍4🔥3🤣3🖕3🥰1🤗1
👣 Rust без боли начинается не с синтаксиса, а с правильных паттернов

Microsoft выложила практический гайд Rust: Patterns & Engineering How-Tos - не для тех, кто только открыл println!, а для разработчиков, которые уже упёрлись в реальные production-вопросы.

Что внутри:

- type-state и newtype для безопасного дизайна API
- PhantomData для lifetime branding, variance и zero-cost типизации
- channels, actors и concurrency-паттерны
- async pitfalls, где Rust чаще всего ломает ожидания новичков
- error handling через thiserror и anyhow
- тестирование через unit, integration, doc tests и proptest
- benchmarking через criterion

Это особенно полезно для тех, кто приходит из C++, C# или Go и внезапно понимает, что borrow checker - это не главный враг. Главная сложность в Rust - выбрать правильную форму абстракции до того, как код превратится в набор lifetime-костылей.

Если вы уже прошли Rust Book, но всё ещё зависаете на generics, trait bounds, PhantomData, async и тестировании, это очень хороший следующий шаг.

https://microsoft.github.io/RustTraining/rust-patterns-book/

#rust #rustlang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥15🥱43🥰1😁1🤗1