Deno 2.8
(deno.com)deno addedeno installagora tratam nomes de pacote sem prefixo no CLI como pacotesnpm:por padrão, facilitando o uso no lugar denpm install,yarnoupnpm installem projetos Node existentesdeno audit fixatualiza automaticamente pacotes npm vulneráveis nas dependências para a versão de patch mais próxima que satisfaça as restrições de versão, e mostra separadamente os itens que exigem mudança de versão major- Novos subcomandos
deno ci,deno pack,deno transpile,deno whyedeno bump-versionforam adicionados para oferecer suporte a instalações reproduzíveis, geração de tarballs para publicação no npm, conversão de TS→JS, rastreamento do caminho de dependências e atualização de versões em workspaces - A compatibilidade com a API do Node.js subiu de cerca de 42% no Deno 2.7 para 76,4% (3.405/4.457) no Deno 2.8 com base na própria suíte de testes do Node, e muitos módulos
node:agora são carregados sob demanda, acelerando a inicialização de programas que não usam esses módulos - Em desempenho, a instalação fria de npm ficou 3,66 vezes mais rápida em relação ao Deno 2.7.1, caindo de 3.319ms para 906ms;
node:bufferbase64 melhorou 3,07 vezes, a taxa de processamento denode:http2,21 vezes enode:cryptoscrypt 2,12 vezes - Como mudança de compatibilidade,
setTimeoutesetIntervalglobais agora retornam o objetoTimeoutdo Node em vez de um número, então códigos que armazenavam o retorno comonumberou o usavam em checagem de tipo ou operações aritméticas devem ser ajustados paraNodeJS.Timeoutou equivalente - TypeScript 6.0.3 vem embutido, e
deno checke a LSP passam a incluirlib.nodepor padrão, interpretando tipos do Node comoNodeJS.*,Buffereprocesssem configuração adicional - Em depuração, a aba Network do Chrome DevTools passa a exibir tráfego de
fetch(),node:http/node:httpseWebSocketdo Deno, e--cpu-prof,--cpu-prof-flamegraphe--cpu-prof-mdpodem gerar perfis do V8, flamegraphs em SVG e relatórios em Markdown - Em gerenciamento de pacotes e workspaces, foram adicionados o protocolo
catalog:,deno install --os --arch,--prod,nodeModulesLinker: "hoisted",min-release-ageno.npmrce--package-json, reforçando a padronização de versões em monorepos, instalações multiplataforma, instalações de produção e a migração de projetos Node existentes - O
deno compiledetecta projetos Next.js, Astro, Fresh, Remix, SvelteKit, Nuxt, SolidStart, TanStack Start e Vite SSR, executadeno task builde gera o ponto de entrada apropriado, além de mostrar o progresso durante o processamento de grandes árvores de dependências npm - Em testes e Web API, os valores padrão de
sanitizeOpsesanitizeResourcesemDeno.test()mudaram parafalse, foram adicionadostimeoutpor teste e cobertura por função, e chegaramOffscreenCanvas,Headers,Request,Responsee Streams transferíveis, digest SHA3 e suporte a Web Crypto P-521 - Em upgrade e base do runtime,
deno upgradepassa a usar atualizações delta quando possível, reduzindo o download de cerca de 48MB para 3–6MB,deno upgrade pr <number>permite instalar builds de PR, e o V8 foi atualizado da 14.6 para a 14.9
1 comentários
Comentários do Hacker News
Deno é útil por ter um modelo de permissões padrão, ser escrito em Rust e oferecer suporte nativo a TypeScript
Não sou tão profundo no ecossistema de desenvolvimento web/Node/Bun, mas usei Deno com satisfação em pequenos serviços por alguns anos. Fico curioso por que o Bun parece estar crescendo tão rápido. Não sei se ele é usado mais como bundler e menos como runtime JavaScript
Só o sistema de permissões já torna o Deno atraente, então não entendo muito bem por que, ao sair do Node para o Bun, as pessoas não vão para o Deno
Por muito tempo, muitas dependências e frameworks não funcionavam direito no Deno, e no começo ele nem sequer tinha suporte para instalar dependências via npm. Ao olhar para os ataques à cadeia de suprimentos do npm, talvez o Ryan estivesse certo
Por isso, o Bun parecia um Node melhor, com mais conveniências e funcionando de imediato com muito menos configuração. A equipe do Deno parece ter percebido que, para ter sucesso, precisava de compatibilidade com Node e vem focando nisso nos últimos anos. Hoje eu diria que o Deno é mais compatível com Node do que o Bun
Só para constar, alguns desses nomes acima são golpes de Pokémon, e os outros são ferramentas reais do ecossistema JS/TS
Quando não quero mexer em configuração de testes, tsconfig, módulos ES e coisas assim, ele simplesmente tende a funcionar. O Deno tem uma biblioteca padrão boa e excelente suporte de CLI, e eu também gostava do deno deploy, mas ultimamente ele ficou bem mais trabalhoso
É realmente ótimo de usar, e é uma pena que não tenha se espalhado mais entre o pessoal de JS
Então migrei para o Bun, e tudo ficou muito mais suave
Fico curioso sobre o estado atual do Deno
Node é a solução estável e vai continuar existindo. Agora ele também pode usar TypeScript e em breve talvez permita gerar apps como um único executável, inclusive com dependências nativas
Bun é confuso, mas rápido, e essa abordagem de incluir tudo na biblioteca padrão é interessante. Além disso, foi adquirido pela Anthropic
O Deno tinha uma proposta legal com sandbox e facilidade de importar dependências de terceiros, mas sandbox agora parece algo bem mais comum, e o modelo de import no fim talvez nem tenha sido tão melhor assim do que
npm addDeno é excelente. Estou escrevendo serviços web pequenos e médios em Deno
Funciona como um relógio suíço, e a filosofia do projeto combina bem com o espírito Unix
Pessoalmente, acho que as pessoas que fazem o Deno são um pouco humildes demais. Mesmo quando usuários gratos se oferecem para doar ao projeto, eles recusam educadamente. Entendo o motivo, mas isso também pode criar uma pressão financeira desnecessária para o projeto no longo prazo
Uma assinatura mensal do tipo “por favor, aceitem dinheiro” para usuários que dependem do sucesso de longo prazo do projeto poderia funcionar muito bem
É rápido e flexível, oferece um gerenciamento de pacotes um pouco mais sensato e com recursos mais fortes do que outras alternativas JS/TS, um modelo de segurança melhor, uma biblioteca padrão melhor. E também é muito rápido
Para quem não conhece o nome Deno, ele é um runtime de JavaScript e TypeScript
Há uma análise comparando o Deno 2.6 com os concorrentes Bun 1.3 e Node.js 25: https://www.devtoolreviews.com/reviews/bun-vs-node-vs-deno-2...
Do mesmo modo, embora não diga explicitamente, o Bun parece ter sido executado com o cache de pacotes já aquecido. Fico curioso se os outros runtimes também estavam com cache
O ritmo constante de lançamentos do Deno é impressionante. Estou curioso para ver quais melhorias de desempenho entraram nesta versão
O novo comando
deno packé uma boa adição para empacotamento seguro e simplesSe você usa Node.js, algo parecido em comando único pode ser feito com https://www.npmjs.com/package/ts-node-pack
Agora que o Node.js oferece suporte à importação de módulos
.ts, mais repositórios poderão usar isso sem etapa de build nem sem colocar artefatos de build no checkoutdeno packpode substituir o fluxo atual denpm publishdo meu pacote open source e ser bom para continuar movendo o trabalho para algo Deno-first / centrado em DenoPor outro lado, como o suporte a TypeScript no Node está crescendo, transformar isso em um pacote npm só de TypeScript também pode ser um recado bem pequeno para o ecossistema
Ainda assim, fico feliz que o JSR exista como um ecossistema relativamente mais limpo
Mas, ao entrar no Deno CLI, a visibilidade aumenta bastante
Se o Deno tivesse mantido um pouco mais sua proposta inicial por mais tempo, a pressão por compatibilidade com Node teria sido parcialmente preenchida por agentes de IA
Boa parte dessa pressão vem de uma questão de familiaridade. Se você só sabe configurar coisas com express.js, acaba sentindo que qualquer ferramenta ou runtime posterior precisa oferecer abstrações semelhantes para que a transição pareça “suave”. Isso vale independentemente de quão ruim era a primeira solução
Hoje em dia, é possível apresentar novas tecnologias ao desenvolvedor entregando junto o pacote técnico necessário com o produto, e isso às vezes realmente substitui a documentação, além de ser bastante eficaz para mostrar abordagens alternativas melhores
Tendo usado Deno em vários projetos de hobby, estou convencido de que o Deno é a direção para a qual o ecossistema JS deveria caminhar
Ainda assim, recomendá-lo no trabalho fora de casos de uso específicos e geralmente bem limitados é complicado. Em algum momento, se o projeto mudar de rumo por motivos de negócio, no fim você acaba precisando do Node
Desde o lançamento do Edge.js [1], é bom ver o Deno tratando a compatibilidade com Node.js com mais seriedade
Em cerca de 2 meses, subiu de algo na casa dos 40% para uns 75%, então, por coincidência ou não, isso é claramente um passo na direção certa
Parabéns a toda a equipe do Deno
[1] https://edgejs.org/
Eu envolvo a maior parte dos idiomatismos do Node e uso Deno como runtime. Funciona bem
Se o projeto for TypeScript puro, simplesmente rodo com Deno. As opções extras de segurança também são boas, e gosto do fato de scripts de instalação virem desativados por padrão
Se você ainda usa Node diretamente, eu recomendaria parar. No mínimo, acho melhor usar Bun
Para trabalho orientado por agentes, quase não há motivo para usar algo além de Rust e TypeScript. Dá para discordar, mas segurança de tipos, segurança de memória e um enorme corpus de trabalho importam. Agentes exploram melhor quando há erros exigentes e padrões embutidos. Para UI, o TypeScript faz mais sentido porque há exemplos de design demais por aí