Executando verificação de segurança...
5

Bun 1.2 é lançado com avanços na compatibilidade com Node.js

O Bun 1.2 trouxe melhorias significativas para desenvolvedores JavaScript e TypeScript, aproximando-se ainda mais da compatibilidade total com o Node.js. A nova versão incluiu uma extensa suíte de testes do Node.js para cada alteração feita no Bun, resultando na correção de milhares de bugs. Atualmente, diversos módulos do Node.js já atingem mais de 90% de aprovação nos testes realizados no Bun.

Entre as novidades, destaca-se a introdução de uma API integrada para armazenamento S3, chamada “Bun.s3”, que permite aos desenvolvedores interagir diretamente com serviços de armazenamento compatíveis sem a necessidade de bibliotecas externas. Além disso, o Bun agora conta com um cliente Postgres integrado, o “Bun.sql”, facilitando conexões e interações com bancos de dados Postgres. A equipe já anunciou que o suporte ao MySQL será disponibilizado em futuras atualizações.

Outra melhoria está no gerenciamento de dependências: o comando “bun install” passou a utilizar o “bun.lock”, um arquivo de bloqueio em formato de texto, que torna a colaboração em equipe mais prática ao simplificar o rastreamento e revisão de alterações nas dependências via Git.

O desempenho do framework Express também foi otimizado no Bun 1.2, tornando-o três vezes mais rápido em relação a versões anteriores. Essa melhoria beneficia diretamente os desenvolvedores que utilizam o Express para criar aplicações web de alto desempenho.

Carregando publicação patrocinada...
2

Eu testei quando foi lançado e gostei tanto da ideia de rodar nativamente TS como pela velocidade. Só fico com medo de me amarrar em algumas libs próprias deles, como o S3 e SQL dessa versão. Por mais que a compatibilidade seja quase completa, se amanhã eu precisar alguma lib que não seja suportada me arrependerei amargamente hahaha

2

Então, o que fazer?

  • Desenvolver em javascript ou typescript com node;
  • Desenvolver em javascript ou typescript com bun?

Teremos uma comunidade dividida entre node e bun ou uma comunidade que pode usar os dois com o mesmo código?

2

O bun parece ser superior ao node em praticamente tudo, ainda mais por ter suporte nativo a typescript (foi o que disseram, não sei a verecidade disso).

Porém eu não sei se bun é compatível e suportado tanto quanto o node é. Não cheguei a testar, mas parece ser o futuro.

3

uso o bun desde o começo do ano passado e sim, é o futuro do desenvolvimento em JS.

ele tem sim suporte nativo ao TS; é só usar bun run index.ts que funciona. acho que a única ressalva é que ele não faz nenhum tipo de typechecking, mas é esperado.

e ele funciona muito bem com o ecossistema do node. como a maioria das coisas do npm são JS puro, dificilmente você vai encontrar problema de compatibilidade.

a ressalva é quanto aos módulos nativos (N-API etc etc): alguns podem apresentar problema, especialmente se dependem de APIs da V8 (engine js do node), já que o Bun usa o JavaScriptCore da Apple.
mas até nesse aspecto, o bun dá um show pq ele funciona mt bem com a maioria dos pacotes nativos. o único problema que encontrei até hoje (como alguém q usa mta coisa nativa) é no client do prometheus, já que na configuração padrão dele, ele coleta informações de GC que são específicas à V8. mas editando isso, tudo funciona tranquilo.

pra quem ainda não testou o bun, super recomendo. obviamente não é o node e pode dar problema em codebases extensas já existentes. mas se você tá desenvolvendo algo do 0, a sua produtividade vai melhorar MUITO no bun. pra você ter noção, nem precisa de nodemon: só usar bun --watch index.js e pronto ;)