04 / DATA BOUNDARY
How much can Toolars handle?
These results cover 15 browser tools: the largest input each accepts, a typical run time, and network-isolation observations. An internal harness recorded them on 2026-09-20 by running the published tool pages in headless Chromium.
Measured 2026-09-20 · Chromium 151.0.7922.34 (headless) · darwin arm64
| Tool | Largest accepted input | Typical run | Local-processing proof |
|---|---|---|---|
| Base64 Encoder / Decoder | 1.0 MiBmatches the declared limit (1.0 MiB) | 7 msmedian of 3 runs at 100.0 KiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| MD5 Hash & Verify | 1.0 MiBmatches the declared limit (1.0 MiB) | 59 msmedian of 3 runs at 1.0 MiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| SHA-256 Hash & Verify | 1.0 MiBmatches the declared limit (1.0 MiB) | 59 msmedian of 3 runs at 1.0 MiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| JavaScript Regex Tester | 97.7 KiBmatches the declared limit (97.7 KiB) | 85 msmedian of 3 runs at 97.7 KiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| Structured Data Converter | 256.0 KiBmatches the declared limit (256.0 KiB) | 44 msmedian of 3 runs at 200.0 KiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| SQL Formatter | 256.0 KiBmatches the declared limit (256.0 KiB) | 785 msmedian of 3 runs at 200.0 KiB input | 0 requests · input stayed on device4 non-asset requests blocked |
| HTML Minifier | 256.0 KiBmatches the declared limit (256.0 KiB) | 470 msmedian of 3 runs at 200.0 KiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| Case Converter | 1.0 MiBmatches the declared limit (1.0 MiB) | 112 msmedian of 3 runs at 500.0 KiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| JSON Tree Viewer | 256.0 KiBmatches the declared limit (256.0 KiB) | 3 msmedian of 3 runs at 200.0 KiB input | 0 requests · input stayed on device3 non-asset requests blocked |
| Image Format Converter | 12.0 MiBmatches the declared limit (12.0 MiB) | 91 msmedian of 3 runs at 6.0 MiB input | 0 requests · input stayed on device5 non-asset requests blocked |
| Image Resizer | 12.0 MiBmatches the declared limit (12.0 MiB) | 73 msmedian of 3 runs at 6.0 MiB input | 0 requests · input stayed on device5 non-asset requests blocked |
| Image Cropper | 12.0 MiBmatches the declared limit (12.0 MiB) | 83 msmedian of 3 runs at 6.0 MiB input | 0 requests · input stayed on device9 non-asset requests blocked |
| SVG to PNG Converter | 2.0 MiBmatches the declared limit (2.0 MiB) | 37 msmedian of 3 runs at 1.0 MiB input | 0 requests · input stayed on device4 non-asset requests blocked |
| EXIF Metadata Viewer & Remover | 12.0 MiBmatches the declared limit (12.0 MiB) | 65 msmedian of 3 runs at 6.0 MiB input | 0 requests · input stayed on device5 non-asset requests blocked |
| Photo Censor | 12.0 MiBmatches the declared limit (12.0 MiB) | 78 msmedian of 3 runs at 6.0 MiB input | 0 requests · input stayed on device5 non-asset requests blocked |
Input limits are enforced caps: they hold on any device. Run times depend on hardware — treat them as this machine's figures, not guarantees.
How these numbers are measured
The internal harness (scripts/benchmark-tools.mjs) drives published tool pages in headless Chromium. It uses synthetic inputs and records observed results. The script is in a private repository; its source and a standalone rerun package are not publicly available.
- Input limit: starting at 1 KiB, the harness doubles the input until the tool rejects it, then binary-searches the exact byte boundary between the largest success and the first failure.
- Run time: for a fixed typical input, the harness times from the run action to the visible result and reports the median of 3 runs.
- Local-processing proof: after a warm-up pass records the static assets, the harness blocks every network request except those exact assets and injects a unique canary string into the input. A tool passes only when the canary appears in zero requests.
Measurement environment
- Browser
- Chromium 151.0.7922.34 (headless)
- CPU
- Apple M3 Ultra
- System
- darwin arm64
- Node.js
- v24.19.0
- Harness
- scripts/benchmark-tools.mjs — internal; source not public
Measurements from 2026-09-20. This page reflects the published results file.
Benchmark questions
Are these benchmarks reproducible?
Toolars can rerun the internal harness against the published pages. This page describes the method and results, but the exact script and a standalone rerun package are not publicly available, so visitors cannot independently repeat the same measurement yet.
Do the limits differ on slower computers?
No. The published input limits are hard caps enforced by each tool's local runtime, so the largest accepted input is identical on any device. Only the run-time column shifts with CPU speed; that is why every run time names its input size and this page states the measuring hardware.
How do you verify that inputs are not uploaded?
For each tool the harness first warms up the page, then blocks all network traffic except the previously recorded static assets and runs the tool again with a unique canary token in the input. The local-processing column reflects that run: zero requests carrying input means the tool processed everything on the device.
Inspect the related privacy checks.
The privacy proof page explains the measured canary runs and audited connection list.