diff --git a/README.md b/README.md index 9a71fb7..f739a6e 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ A 730B library for parsing CLI flags. Inspired by Deno's `std` [`flags`](https:/ - It's very small. - It's very fast. +- It's a nicer API (and faster!) than [`parseArgs` from `node:util`](https://nodejs.org/api/util.html#utilparseargsconfig). ### Usage @@ -37,8 +38,9 @@ const args = parse(argv, { ## Benchmarks ``` -mri x 1,285,159 ops/sec ±0.29% (90 runs sampled) -ultraflag x 986,699 ops/sec ±0.38% (91 runs sampled) -minimist x 250,866 ops/sec ±0.59% (92 runs sampled) -yargs-parser x 18,153 ops/sec ±4.30% (85 runs sampled) +mri x 1,650,986 ops/sec ±0.32% (97 runs sampled) +ultraflag x 1,407,191 ops/sec ±0.38% (99 runs sampled) +minimist x 383,506 ops/sec ±0.28% (99 runs sampled) +node:util x 320,953 ops/sec ±0.35% (98 runs sampled) +yargs-parser x 31,874 ops/sec ±1.32% (92 runs sampled) ``` diff --git a/scripts/bench.js b/scripts/bench.js index f12ca07..cd41e06 100644 --- a/scripts/bench.js +++ b/scripts/bench.js @@ -1,8 +1,9 @@ +import { parseArgs } from 'node:util' import benchmark from "benchmark"; -import { parse as ultraflag } from "../dist/index.js"; import minimist from 'minimist'; -import yargs from 'yargs-parser'; import mri from 'mri'; +import yargs from 'yargs-parser'; +import { parse as ultraflag } from "../dist/index.js"; const bench = new benchmark.Suite(); const args = ['--a=1', '-b', '--bool', '--no-boop', '--multi=foo', '--multi=baz', '-xyz']; @@ -11,6 +12,7 @@ bench .add('ultraflag ', () => ultraflag(args)) .add('mri ', () => mri(args)) .add('minimist ', () => minimist(args)) + .add('node:util', () => parseArgs({ args, strict: false, allowNegative: true, options: { bool: { type: 'boolean', short: 'b' }, boop: { type: 'boolean' }, multi: { type: 'string' }} })) .add('yargs-parser ', () => yargs(args)) .on('cycle', e => console.log(String(e.target))) .run();