npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

bunmark

v1.0.2

Published

Lightning-fast API benchmarking CLI, powered by Bun. Measure response times, load test endpoints, and optimize performance with minimal setup.

Readme

bunmark ⚡

A blazing fast, minimalist API benchmarking tool powered by Bun.

Designed for quick and easy performance testing of your HTTP endpoints directly from the terminal, with a clean, modern output.

Features

  • 🚀 Fast: Built on Bun for exceptional performance.
  • ⏱️ Flexible Benchmarking: Run tests based on request count (-n) or duration (-t).
  • 🔄 Concurrency Control: Easily set the number of concurrent requests (-c).
  • 🛠️ Full HTTP Support: Specify methods (-X), headers (-H), query parameters (-q), and request bodies (-d, including reading from files with @).
  • 🎨 Modern Output: Displays results in a visually appealing, colorized format in the terminal (uses chalk and ora).
  • 🔁 Interactive Progress: Shows a spinner while the benchmark is running.
  • 💾 JSON Output: Option to get results in JSON format (--json) for programmatic use.

Requirements

Installation

Globally (Recommended once published):

bun add -g bunmark

From Source (for development):

git clone https://github.com/bernabedev/bunmark.git
cd bunmark
bun install
chmod +x index.ts   # Ensure the script is executable
bun link            # Make the 'bunmark' command available system-wide

Usage

bunmark [options] <url>

Arguments:

  • <url>: (Required) The URL of the API endpoint to benchmark.

Options:

| Option | Alias | Description | Default | | --------------------- | ----- | ---------------------------------------------------------------- | --------- | | --method <method> | -X | HTTP method | GET | | --header <header> | -H | Add request header (use multiple times) (e.g., "Auth: Bearer") | [] | | --data <data> | -d | HTTP request body (use @filename to read from file) | undefined | | --query <query> | -q | Add query parameter (use multiple times) (e.g., "key=value") | [] | | --requests <num> | -n | Total number of requests to run (conflicts with -t) | 100 | | --duration <secs> | -t | Duration of benchmark in seconds (e.g., 10s) (conflicts with -n) | 10 | | --concurrency <num> | -c | Number of concurrent requests | 50 | | --json | | Output results in JSON format | false | | --help | -h | Display help information | | | --version | -v | Display version number | |

Examples

# Simple GET benchmark (100 requests, 50 concurrent)
bunmark https://httpbin.org/get

# Benchmark with 1000 requests and 100 concurrency
bunmark -n 1000 -c 100 https://api.example.com/users

# Benchmark POST with JSON body for 30 seconds
bunmark -X POST -H "Content-Type: application/json" -d '{"name":"test"}' -t 30s https://httpbin.org/post

# Read body from file and add query params
echo '{"id": 123, "value": "update"}' > payload.json
bunmark -X PUT -d @payload.json -q "user=admin" -H "X-API-Key: secret" https://api.example.com/items/123

# Get JSON output only
bunmark --json https://httpbin.org/get

Example Output

Benckmarking GET https://httpbin.org/delay/1 with 50 concurrency... ✓ Benchmark finished in 3.15s

Benchmark Results:
--- Summary ---
  Total Requests:    100
  Successful:        100 (100.0%)
  Failed:            0 (0.0%)
  Reqs/sec:          31.75

--- Latency (Successful Requests) ---
  Average:           1565.81ms
  Min:               1042.12ms
  Max:               2105.55ms
  P50 (Median):      1550.30ms
  P90:               2051.80ms
  P99:               2100.15ms

--- Status Code Distribution ---
  [200]: 100 requests

License

MIT