Fastest route path-to-params parser.
Optimized where it's possible.
Up-to 10x faster than fastest counterpart (aot
imports)
- Zero dependency
- Zero config
- Fastest parser
import parse from 'fast-path-parse/runtime/parse';
// or
import parse from 'fast-path-parse/aot/parse';
// Run this ahead-of-time, not at runtime or hot path
const parsePath = parse('/user/:foo');
// Run this at hot path
parsePath('/user/john');
const parse = require('fast-path-parse/runtime/parse');
// or
const parse = require('fast-path-parse/aot/parse');
// Run this ahead-of-time, not at runtime or hot path
const parsePath = parse('/user/:foo');
// Run this at hot path
parsePath('/user/john');
It is on my machine, on your machine results may vary. See benchmark folder
Runtime | Path | Methods | fast-path |
fast-path-compiled |
path-to-regexp |
path-to-tree |
---|---|---|---|---|---|---|
Node.js | /user/:id/edit/:page |
match |
16.5M ops |
24M ops |
3M ops |
2M ops |
Bun | /user/:id/edit/:page |
match |
15M ops |
15M ops |
1M ops |
2.5M |
Node.js | /user/:id/edit/:page |
parse |
13.5M ops |
28M ops |
3M ops |
2M ops |
Bun | /user/:id/edit/:page |
parse |
17M ops |
23M ops |
1M ops |
2.5M |
- ✅ – Done
- ✍️ – In progress
- 🕖 – Planned but not started yet
⚠️ – Requires high amount of time- ?– Not tested but could work
- ❌ – Probably does not happen
Name | Status | Priority | Performance |
---|---|---|---|
/foo |
✅ | 0 | 100% |
/foo/bar |
✅ | 0 | 100% |
/foo/bar-{one,two} |
1 | 60% | |
/foo/bar-[one,two] |
1 | 60% | |
/foo/bar_* |
2 | 80% | |
/foo/bar-* |
2 | 80% | |
/foo/bar* |
2 | 80% | |
/foo/bar/<id> |
✅ | 3 | 90% |
/foo/task/:bar |
✅ | 4 | 80% |
/foo/:task/:bar |
✅ | 4 | 70% |
/foo/:bar |
✅ | 5 | 90% |
/foo/* |
✅ | 6 | 90% |
/foo/(.*) |
✅ | 6 | 90% |
MIT