Bun ( bułka) – środowisko uruchomieniowe JavaScript, menedżer pakietów, program uruchamiający testy i program opakowujący kod. Został zaprojektowany przez Jarreda Sumnera jako zamiennik i rozszerzenie dla Node.js.

Bun został zbudowany w większości przy użyciu . Jako silnik JS używany jest JavaScriptCore z WebKit, czyli inaczej niż w Node.js i , które używają silnika V8 z Chromium.

Elementy środowiska Bun obsługuje łączenie, minifikację i renderowanie po stronie serwera (Svelte, , ). Łączenie, czy opakowywanie kodu odnosi się do procesu łączenia wielu plików i zasobów, takich jak JavaScript, CSS i HTML, w jeden plik lub przynajmniej mniejszą liczbę plików, co wiąże się z ułatwieniem dystrybucji i zmniejszeniem liczby żądań serwera w celu zwiększenia wydajności strony internetowej.

Minifikacja to technika zmniejszenia wielkości plików z kodem poprzez zmianę kodu na krótszy, ale równoważny, czyli to kolejna metoda na zwiększenie wydajności. W wypadku Bun oprócz typowego usuwania zbędnych spacji i komentarzy, daje też możliwość skrócenia identyfikatorów, a nawet optymalizacja składni (np. łącząc statyczne ciągi znaków w jedne ciąg).

Środowisko wykonawcze obsługuje m.in. SQLite3, TLS 1.3 i rozwiązywanie nazw DNS.