Back to Explore

tinylibs/tinybench

GitHub
7 updates · last 90 daysOpen source

Last release:

Tinybench is a simple, lightweight JavaScript benchmarking library for running benchmark tasks and measuring latency and throughput with timing based on Web APIs (process.hrtime or performance.now). It provides statistically analyzed results such as percentiles and margin of error, and supports concurrency and event-style notifications (EventTarget-compatible).

Project status

  • Actively maintained: the latest upstream push was on 2026-11-05, and updates continued through the preceding months.
  • Updates have been fairly frequent, with several in September and October and another in early November.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v6.2.3

    v6.2.3 is a performance-focused release that reduces sorting overhead when handling large benchmark samples. The visible diff excerpt contains regenerated documentation, but does not include the implementation changes needed to verify the optimization details.

  • v6.2.2

    Release v6.2.2 is presented as a small bug fix focused on concurrency behavior. The documented change is removing concurrency abort listeners after benchmark runs complete.

  • v6.2.1

    v6.2.1 release notes document a targeted stats fix: compute `critical` exactly at any sample size, alongside a bundle size reduction. However, the provided diff shows additional changes in the generated TypeScript documentation, indicating API and behavioral adjustments around task return typing and hook invocation semantics that are not mentioned in the release notes.

  • v6.2.0

    tinybench v6.2.0 primarily documents a new option, `overriddenIterationCost`, intended to decouple the time budget from the sampling/iteration cost. The provided code diff excerpts focus on regenerated documentation output (version stamping and updated TypeDoc “Defined in” commit references), and do not show any runtime or API implementation changes.

    Features
  • v6.1.6

    Release v6.1.6 is a small bug fix focused on TypeScript typing support for non-DOM runtimes. The release notes specifically call out improvements to the project’s type declarations to work outside browser environments.

  • v6.1.5

    v6.1.5 is a small bug fix release focused on improving compatibility with Bun by guarding how Bun.version is accessed and preserving the existing version fallback behavior. The release notes only mention these two runtime detection fixes.

  • v6.1.4

    v6.1.4 is presented as a small bug fix release. The release notes claim a change in the TypeScript types around preserving EventTarget listener fallbacks.

  • v6.1.3

    v6.1.3 is described as a small bug fix release, focused on enforcing an optional hook signature. The provided diff, however, shows mostly generated documentation updates plus a type-level change introducing a new HookMode alias.

    Features
  • v6.1.2

    v6.1.2 is a small maintenance release focused on type exports and numeric formatting behavior in table output and time conversion. The release notes mention exporting HookMode and TimestampProviderName, rendering rme via formatNumber, and making mToNsBigint accept fractional milliseconds.

  • v6.1.1

    Release v6.1.1 performs a version bump and makes a small CI workflow change related to publishing documentation. The only code changes in this diff are in the GitHub release workflow and package.json version.

  • v6.1.0

    v6.1.0 adds timer overhead correction to reduce measurement inflation from timestamp provider call cost, along with timer saturation detection that can dispatch warning events. It also exposes a per-task resolution diagnostic (Task.detectedResolution) and ships new public helpers for calibrating and classifying timer behavior.

    BreakingFeatures
  • v6.0.3

    v6.0.3 is described as a small bug fix release. The release notes mention a documentation export fix (mToNs for a README console.table example) and a CI workflow conditional tweak.

  • v6.0.2

    Release v6.0.2 documents only linting-related changes, specifically updating the ESLint configuration and adding a JSDoc rule. The provided code diff, however, largely shows regeneration or re-bundling of the documentation website (many docs HTML files) rather than application or API logic changes.