DEV Community

Cover image for Bun: o novo runtime para Javascript
Cristian Magalhães
Cristian Magalhães

Posted on • Updated on

Bun: o novo runtime para Javascript

Neste artigo irei lhe explicar o significado da palavra runtime e uma breve introdução ao Bun

O que é um runtime?

Runtime é o ambiente onde o javascript será executado.

Caso não tenha entendido ainda, eu te explico. O trabalho do runtime é executar o JavaScript fora do navegador, assim sendo o primeiro passo para que o JS possa ser usado como uma linguagem de backend. Primeiramente é necessário implementar o seu motor de execução o que no caso do node é usado o V8 que é o motor da Google.

Porém apenas isso não é o suficiente para que JS seja uma linguagem de backend pois por si só o JavaScript não acessa o FileSystem, não sobe servidor, resumindo ele não vai interagir com nada da sua máquina. Então entra o runtime a plataforma onde o seu código JS será executado, o mesmo pode implementar bibliotecas para aprimorar a linguagem. O runtime mais conhecido hoje em dia é o Node.js, porém nós iremos falar sobre um cara novo chamado bun.js

Quem é o Bun?

O bun.js é um novo runtime para JavaScript criado com as seguintes premissas

  • Start fast (it has the edge in mind). Iniciar rápido

  • New levels of performance (extending JavaScriptCore, the engine). Novos niveis de performance (extendo o core do Javascript)

  • Being a great and complete tool (bundler, transpiler, package manager). Sendo uma ferramente ótima e completa (bundler, transpilador e gerenciador de pacote)

A ideia do bun é que ele consiga substituir o seu runtime atual sem muito problemas. Até por isso ele implementa alguns módulos do NodeJS e ultiliza bibliotecas do NPM. Você pode checar quais APIs são implementadas neste link.

Além disso o bun também da suporte a arquivos TypeScript e JSX como a própria documentação diz, "isso apenas funciona".

Resumindo o bun é um runtime que ultiliza API's do NodeJs, pacotes do npm, compila códigos TypeScript e JSX e faz tudo isso de uma forma muita mais rápida que o Deno e o NodeJS.

Qual é o seu diferencial perante aos outros runtimes?

No geral o bun acaba sendo mais rápido que o seu concorrentes em lidar com requisições HTTP, realizar mais queries por segundo e resolver mais operações por segundo. Abaixo coloquei alguns prints dos gráficos que são apresentados no site do runtime.

Requisições HTTP

Image description

Queries

Image description

Operações por segundo

Image description

O que eu torna o bun mais rápido que seus concorrentes?

O Bun foi criado usando uma linguagem de programação multi-paradigma chamada Zig, também foi criado pensando em padrões de projetos mais modernos e ultilizando o motor JavaScriptCore ao contrário do NodeJS e Deno que usam o motor V8.

Projetos

Neste repositório eu adicionei um projeto web(react) e uma simples api usando o bun e junto com eles as suas instruções.

Fontes:

O que é Node.js? (Entenda de uma vez por todas)

Node.js Código Fonte TV

Muito obrigado por ler 🙃

Links úteis

Latest comments (0)