CEVIU Logo
Voltar
Experimentando a proposta de Cross-Origin Storage API no Transformers.js

Experimentando a proposta de Cross-Origin Storage API no Transformers.js

Aprofundamento CEVIU

Aprofundamento

A Cross-Origin Storage API (COS API) é uma proposta de padrão web ainda em estágio inicial, não implementada nativamente em nenhum navegador até hoje. Ela busca resolver um problema real e crescente no desenvolvimento de IA no navegador: a duplicação forçada de downloads e armazenamento de modelos e módulos WebAssembly (Wasm), como os usados pelo Transformers.js, por causa da partição de cache por origem. Esse isolamento, embora essencial para segurança e privacidade, faz com que dois sites diferentes que usem o mesmo modelo (ex.: Xenova/whisper-tiny.en) ou o mesmo runtime Wasm (ex.: ort-wasm-simd-threaded.asyncify.wasm) baixem e armazenem cópias idênticas, mesmo sendo byte a byte iguais. Em um exemplo documentado, isso gerou 177 MB de redundância apenas para um único modelo.

O mecanismo central da proposta é o uso de hashes criptográficos (SHA-256) como identificadores únicos dos arquivos, em vez de URLs ou origens. Isso permite que o navegador reconheça conteúdo idêntico independentemente de onde ele foi servido, seja do Hugging Face Hub, jsDelivr ou outro CDN. A proposta já tem experimentos concretos: o Transformers.js v4.2.0 inclui a flag env.experimental_useCrossOriginStorage = true, e extensões como a do Chrome para COS injetam um polyfill navigator.crossOriginStorage para testes locais. Projetos como WebLLM e Wllama também estão integrando a proposta.

Por que isso importa

Isso importa porque a IA no navegador está deixando de ser curiosidade técnica e virando realidade operacional, mas com custos ocultos. Cada download redundante de modelos pesados consome largura de banda do usuário, enche o armazenamento local (principalmente em dispositivos móveis), aumenta a latência de inicialização e eleva o consumo de energia. Para aplicações que dependem de múltiplos modelos (ex.: ASR + análise de sentimento), a ineficiência se multiplica. A COS API não elimina a partição de cache, ela a complementa com um mecanismo seguro de compartilhamento explícito, baseado em hash e controle de origem. Isso significa que os benefícios chegam sem comprometer os princípios de segurança que motivaram a partição em primeiro lugar.

Impacto para desenvolvedores

Para desenvolvedores, a mudança é prática e imediata em ambiente de teste: basta habilitar a flag experimental no Transformers.js e instalar a extensão do Chrome. Não há alteração na forma como os modelos são chamados (ex.: pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en')). O impacto real aparece no DevTools: menos requisições repetidas na aba Network, redução visível no tamanho do armazenamento na aba Application e tempos de carregamento mais consistentes entre diferentes origens. Ferramentas como o plugin vite-plugin-cross-origin-storage já reescrevem importações estáticas para usar o COS. Mas atenção: como não há suporte nativo ainda, produção exige fallback robusto para o cache tradicional, e a API pode sofrer mudanças antes de entrar nos navegadores.

Perguntas frequentes

O que é a Cross-Origin Storage API?

A Cross-Origin Storage API (COS API) é uma proposta de padrão web do Google Chrome para permitir que aplicações web armazenem e recuperem arquivos grandes, como modelos de IA e módulos WebAssembly, de forma compartilhada entre diferentes origens. Ela identifica arquivos por seu hash SHA-256, não por URL, evitando downloads redundantes. Ainda não está implementada nativamente em nenhum navegador.

Como usar a Cross-Origin Storage API no Transformers.js?

No Transformers.js v4.2.0 ou superior, habilite a flag experimental com env.experimental_useCrossOriginStorage = true. Para testar, instale a extensão oficial do Chrome para Cross-Origin Storage, que injeta o polyfill navigator.crossOriginStorage. Nenhuma alteração é necessária no código de chamada dos pipelines, a integração é transparente para o desenvolvedor.

Por que o cache do navegador não resolve o problema de modelos repetidos?

Porque navegadores modernos isolam o cache HTTP por origem (Network Isolation Key), uma medida de segurança contra ataques de tempo. Mesmo que dois sites baixem o mesmo arquivo do mesmo CDN (ex.: jsDelivr), o cache não é compartilhado. O resultado é que o mesmo modelo ou runtime Wasm é baixado e armazenado múltiplas vezes, um problema amplificado por bibliotecas como Transformers.js que dependem de recursos pesados.

A Cross-Origin Storage API já está disponível no Chrome ou Firefox?

Não. Até 29 de junho de 2026, a Cross-Origin Storage API ainda está em fase de proposta e não foi implementada nativamente em nenhum navegador. Desenvolvedores podem experimentá-la apenas com extensões de polyfill (como a do Chrome) ou ferramentas de build como o vite-plugin-cross-origin-storage. Não há data de lançamento confirmada nem roadmap público de implementação.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Web Dev
Publicado
29 de junho de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser