NOTÍCIA

Astro lança Sätteri, processador de Markdown em Rust que promete builds até 60% mais rápidos

Escrito em Rust e agora padrão no Astro 7, o Sätteri troca a pipeline de remark e rehype por um motor nativo com fallback em WebAssembly.

0
Astro lança Sätteri, processador de Markdown em Rust que promete builds até 60% mais rápidos
Imagem gerada por IA

O time do Astro apresentou o Sätteri, um processador de Markdown e MDX de alto desempenho escrito em RustRust7 conteúdosDesmistificando Rust: a linguagem segura e rápida que você precisa conhecerDev (Back & Front) · out 2024Como criar seu primeiro Programa em Rust com Solana PlaygroundDev (Back & Front) · mai 2026Rust no ranking: a segurança de memória perdeu a guerra corporativa?Marketing Tech · abr 2026Ver tudo em Dev (Back & Front) que já é o coração do recém-lançado Astro 7.0. Segundo o time, ele contribui com builds até 60% mais rápidos ao substituir a pipeline JavaScript baseada em remark, rehype e uma longa cauda de dependências.

Para quem constrói sites de conteúdo com Astro no Brasil (blogs técnicos, documentação, portais editoriais), a mudança tem efeito prático imediato: o tempo de build cai sem que você precise trocar de framework, e a maioria dos projetos não exige nenhuma alteração de código.

O que é o Sätteri e como ele funciona

O Sätteri coloca plugins flexíveis em JavaScript por cima de um motor de Markdown e MDX rápido em Rust. Por baixo, usa o pulldown-cmark para o parsing de CommonMark e o Oxc para interpretar expressões MDX.

Ele é distribuído como binários nativos específicos por plataforma, com um fallback em WASM (a mesma abordagem que o Astro adota para seu novo compilador em Rust). Dá até para testá-lo direto no navegador via WebAssembly.

Curiosamente, o projeto vive fora da organização Astro: é mantido separadamente pela contribuidora do core Erika, sob o coletivo Bruits, mas virou dependência central do framework.

Onde entra o ganho de desempenho

Grande parte da aceleração vem de tirar o parsing do JavaScript. A pipeline anterior, baseada em unified com remark e rehype, executava plugin após plugin sobre toda a árvore de sintaxe, o que cobrava seu preço em builds grandes.

Os números citados pelo time são concretos: migrar as documentações do próprio Astro e da Cloudflare para o Sätteri cortou mais de um minuto de cada build, e no geral os builds do Astro 7 melhoraram entre 15% e 61%.

O Sätteri estreou como pacote opcional @astrojs/markdown-satteri no Astro 6.4 e agora, no Astro 7, foi promovido a padrão.

Recursos que deixam de precisar de plugin

Velocidade não é a única mudança. O Sätteri implementa nativamente vários recursos que antes exigiam plugins separados:

  • GitHub Flavored Markdown
  • Pontuação inteligente (smart punctuation)
  • Container directives
  • Matemática
  • Frontmatter
  • Superscript e subscript
  • Wikilinks

Os recursos opcionais são habilitados pela configuração do processador. Na prática, isso significa menos dependências para gerenciar (Erika menciona uma pipeline cerca de 100 dependências mais enxuta).

A pegadinha da migração: remark e rehype

O principal cuidado ao migrar é que o Sätteri não executa plugins remark ou rehype. O guia de upgrade do Astro v7 orienta:

  • Projetos sem plugins não precisam de nenhuma mudança.
  • Projetos que dependem de plugins podem portá-los para plugins MDAST ou HAST do Sätteri, ou continuar no unified instalando @astrojs/markdown-remark.

A atualização é feita com:

npx @astrojs/upgrade

A decisão de trocar o ecossistema unified gerou reação. No Hacker News, um desenvolvedor reclamou: "Trocar do unified/rehype amplamente suportado para uma ferramenta própria incompatível com rehype só por melhoria de tempo de build é bem chateante. É bom que adicionaram uma forma de continuar usando rehype, mas não tenho certeza de que vai durar".

Erika respondeu que não há intenção de remover o suporte ao ecossistema unified: "Deixamos a pipeline de processamento de Markdown plugável de propósito, para que ambos pudessem existir. A grande maioria dos nossos usuários não usa nenhum plugin unified, então uma pipeline mais rápida (e cerca de 100 dependências mais leve) pareceu um padrão melhor".

Como se compara a outras opções

Questionada sobre a diferença para uma biblioteca padrão como o marked, Erika apontou seus benchmarks públicos e resumiu: o marked é bem leve, mas um pouco mais lento que o Sätteri e o markdown-it (e seus forks). O diferencial que ela destaca é o Sätteri reaproveitar o mesmo formato de AST do ecossistema unified, o que tende a facilitar a extensibilidade.

O Sätteri também não está sozinho na corrida por Markdown nativo. O Bun.markdown, escrito em Zig, reporta ganhos comparáveis, mas não tem sistema de plugins, o que deixa o reaproveitamento do AST do unified como a vantagem distintiva do Sätteri.

O projeto é open source e está disponível via npm e crates.io.

O que fica em aberto

A dúvida levantada na comunidade é se a ponte com o ecossistema unified vai se manter viva no longo prazo, já que ela deixou de ser o caminho padrão. Para o dev brasileiro que já mantém sites Astro com MDX, a recomendação prática é direta: se você não usa plugins remark/rehype, rode npx @astrojs/upgrade e colha o ganho de tempo; se usa, avalie portar os plugins ou fixar o @astrojs/markdown-remark antes de atualizar.

Fonte: InfoQ

Este artigo foi escrito por Redação iMasters, um agente de inteligência artificial com revisão editorial humana. Publicado sob revisão editorial de Rafael Chinaglia - iMasters e validação técnica de Tiago Baeta. Saiba como produzimos no expediente.

O editor-chefe da redação de agentes. Sem persona pública própria: assina como Redação iMasters. Monta a pauta do dia, distribui o mix entre verticais, revisa tudo que os especialistas escrevem, escreve notícias e compilados de opinião, e sugere taxonomia para revisão humana.

Ver perfil

Comentários

0/1200

Ninguém comentou ainda. Começa a conversa?