Astro представила Sätteri — оперативный обработчик Markdown и MDX на Rust

3 мин
Astro представила Sätteri — оперативный обработчик Markdown и MDX на Rust

Команда Astro представила высокопроизводительный обработчик Markdown и MDX для JavaScript-экосистемы — Sätteri. Решение вошло в состав релиза Astro 7.0 в качестве основного обработчика по умолчанию. 

В основе Sätteri лежит язык Rust. Разработкой и поддержкой инструмента в рамках независимого коллектива Bruits занимается Erika — контрибьютор ядра Astro. По заявлению создателей фреймворка, совокупный прирост скорости сборки в Astro 7 составляет от 15% до 61%. Значительная часть этого ускорения достигнута благодаря переходу на Sätteri и переносу парсинга из JavaScript, а также комплексному обновлению экосистемы Astro 7 (в том числе нативный Rust-компилятор .astro и переход на Vite 8/Rolldown).

Причины ускорения сборки

Ранее для обработки и преобразования контента Markdown и MDX авторы использовали цепочку unified, которая состояла из плагинов remark, rehype и большого количества сопутствующих библиотек. Этот процесс требовал последовательного запуска плагинов для обработки синтаксического дерева в среде JavaScript.

Sätteri решает эту задачу быстрее, поскольку переносит парсинг из JavaScript в среду выполнения Rust. Перевод сайтов документации Astro и Cloudflare на свежий обработчик уменьшил время сборки каждого проекта свыше на минуту.

Архитектура и функциональность

Для разбора спецификации CommonMark обработчик использует pulldown-cmark, а для обработки MDX-выражений — Oxc. Средство поставляется в виде нативных бинарных файлов для различных платформ с резервным запуском через WebAssembly (WASM). Проверить работу Sätteri можно в браузере с помощью интерактивной песочницы на официальном сайте проекта.

Свежий инструмент нативно поддерживает функции, которые раньше требовали установки отдельных плагинов. В список стандартных возможностей входят GitHub Flavored Markdown (GFM), умная пунктуация, директивы контейнеров, математические формулы, frontmatter, надстрочные и подстрочные индексы, а также вики-ссылки. Авторы могут включать эти опции в конфигурации обработчика.

Создайте веб‑приложение и получите бонусы на его деплой в облако

В новом бесплатном курсе по JavaScript.

Подробнее →

Совместимость и миграция

Sätteri не поддерживает прямую работу с плагинами remark и rehype. Одновременно разработчики спроектировали конвейер обработки расширяемым, чтобы системы могли существовать параллельно. Поскольку большинство пользователей фреймворка не применяют плагины unified, разработчики выбрали более легкую и быструю цепочку в качестве стандарта по умолчанию.

Для проектов без кастомных плагинов переход на Sätteri не требует изменений в коде. Если инициатива зависит от плагинов remark или rehype, их можно перенести на формат плагинов Sätteri MDAST или HAST либо остаться на unified с помощью пакета @astrojs/markdown-remark. Апдейтнуть инициатива можно с помощью стандартной команды npx @astrojs/upgrade.

В отличие от других быстрых обработчиков Markdown, таких как Bun.markdown на языке Zig, Sätteri сохраняет возможность расширения благодаря совместимости с форматом синтаксического дерева (AST) из экосистемы unified.

Инструмент распространяется по свободной лицензии MIT и доступен для установки через репозитории npm и crates.io.

Читают сейчас

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

5 часов назад

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

Команда Prusa Research выпустила первую публичную альфа‑версию слайсера PrusaSlicer 3.0. Авторы переписали интерфейс, переработали систему профилей, добавили поддержку полноценной работы с несколькими

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

6 часов назад

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

Anthropic выпустила апдейт своих топовых моделей – Claude Fable 5.1 и Claude Mythos 5.1. Это одна и та же модель под капотом, различающаяся уровнем защитных ограничений: Fable 5.1 доступна всем в цело

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

6 часов назад

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

Creality представила 3D‑принтер SPARKX i8 с поддержкой четырёхцветной печати. Его главная особенность заключается в системе QuarTeks, в которой прутки филамента подведены практически к самому соплу, б

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

6 часов назад

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

Автор YouTube‑канала UFD Tech рассказал, что MacBook Neo необычно быстро расходует источник SSD‑накопителя. Всё дело в небольшом объёме оперативной памяти, из‑за которой устройство активно записывает

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

6 часов назад

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

Организация Anthropic предупредила, что инфостилеры перехватывают сеансы Claude и открывают злоумышленникам доступ к учётным записям пользователей. Читать далее