Bun v1.0.11 fixes 5 bugs, adds Bun.semver, fixes a bug in bun install and fixes bugs impacting astro and @google-cloud/storage
Bun is an incredibly fast JavaScript runtime, bundler, transpiler, and package manager โ all in one. In case you missed it, here are some of the recent changes to Bun:
v1.0.0- First stable release!v1.0.1- Named imports for .json and .toml files, fixes tobun install,node:path, andBufferv1.0.2- Make--watchfaster and lots of bug fixesv1.0.3-emitDecoratorMetadataand Nest.js support, fixes for private registries and morev1.0.4-server.requestIP, virtual modules in runtime plugins, and morev1.0.5- Fixed memory leak withfetch(),KeyObjectsupport innode:cryptomodule,expect().toEqualIgnoringWhitespaceinbun:test, and morev1.0.6- Fixes 3 bugs (addressing 85 ๐ reactions), implementsoverrides&resolutionsinpackage.json, and fixes regression impacting Docker usage with Bunv1.0.7- Fixes 59 bugs (addressing 78 ๐ reactions), implements optional peer dependencies inbun install, and makes improvements to Node.js compatibility.v1.0.8- Fixes 138 bugs (addressing 257 ๐ reactions), makesrequire()use 30% less memory, adds module mocking tobun test, fixes morebun installbugsv1.0.9- Fixes a glibc symbol version error, illegal instruction error, a Bun.spawn bug, an edgecase with peer dependency installs, and a JSX transpiler bugfixv1.0.10- Fixes 14 bugs (addressing 102 ๐ reactions), node:http gets 14% faster, stability improvements to Bun for Linux ARM64, bun install bugfix, and node:http bugfixes
To install Bun:
curl -fsSL https://bun.sh/install | bashnpm install -g bunbrew tap oven-sh/bunbrew install bundocker pull oven/bundocker run --rm --init --ulimit memlock=-1:-1 oven/bunTo upgrade Bun:
bun upgradeBun.semver is a fast builtin SemVer parser
bun install's fast node-semver compatible parser is now available as a builtin Bun API: Bun.semver.
import { semver } from "bun";
semver.satisfies("1.0.0", "^1.0.0"); // true
semver.satisfies("1.0.0", "^2.0.0"); // false
const versions = ["2.1.0", "1.0.0", "1.0.1", "1.1.0", "2.0.0", "2.0.1"];
versions.sort(semver.compare); // ["1.0.0", "1.0.1", "1.1.0", "2.0.0", "2.0.1", "2.1.0"]
It's 20x faster than node-semver, and passes node-semver's test suite.
The next version of Bun gets a builtin API for comparing semver ranges
โ Jarred Sumner (@jarredsumner) November 8, 2023
20x faster than node-semver, and passes their tests pic.twitter.com/Vcli83ZDB3
Fixed: Semver sorting bug with build tags
Previously, Bun was sorting semver versions incorrectly when build tags with multiple segments containing the . character were present. This has been fixed, thanks to @dylan-conway.
Fixed: = and v prefix in package.json versions
Previously, Bun only supported = and v prefixes in dependency versions, but not in package.json versions. This has been fixed, thanks to @dylan-conway.
Fixed: potential crash when printing exceptions
A crash that has been present since before Bun v0.1.0 has been fixed. When displaying the preview of the source code that caused an exception, sometimes Bun would crash. This has been fixed.
Fixed: TLS handshaking error-handling issue
A bug in Bun.serve that could cause Bun to eventually no longer respond to incoming requests with client-side certificates has been fixed, thanks to @cirospaciari.
A bug impacting @google-cloud/storage has been fixed
A Node.js compatibilty bug caused @google-cloud/storage to not work as expected.
With DEBUG="*", it would print a message like this:
retry-request Current retry attempt: 1 +0ms
retry-request Next retry delay: 2351 +221ms
retry-request Current retry attempt: 2 +2s
retry-request Next retry delay: 4143 +150ms
retry-request Current retry attempt: 3 +4s
retry-request Next retry delay: 8135 +185ms
retry-request Current retry attempt: 4 +8s
TypeError: undefined is not an object
This has been fixed. It no longer errors, and it no longer erroneously retries (which would cause it to take a long time to fail).
A bug impacting Astro has been fixed
A Node.js compatibility bug caused astro dev to return "file not found" errors when using Bun in v1.0.10. This has been fixed. We will soon add an integration test that runs Astro to prevent this from happening again.
Full changelog: bun-v1.0.10...bun-v1.0.11