π nanoutils 0.1.0 π
Whatβs nanoutils?
π Tiniest FP-friendly JavaScript utils library
It was created after Lodash and Ramda but the challenge was to have each method less than 1KB.
The basic ideas of nanoutils:
- Functional programming is awesome π₯
- No dependencies β
- No ES6 features β
- Efficient β‘π
- Light π
Awesome size π¦
Size is important as download time depends on it
nanoutils
uses SIZES.md to check its size.
We use library size-limit by Andrey Sitnik. We have custom CLI which can write data to terminal and saves all information to Markdown file.
According to recently added statistics:
- Average
nanoutils
method is~700B
lighter thanramda
βs 50%
ofnanoutils
methods are less than~110B
whileramda
has its median around~470B
- maximum method size for
nanoutils
is within1KB
and equals674B
whileramda
doesnβt limit its size and its largest method equals~3400B
Based on BundlePhobia:
nanoutils
is tree-shakeable asramda
nanoutils
takes100ms
and500ms
less time to be downloaded in comparison withramda
andlodash
respectively
Performance
Performance is difficult to compare as time is different for different devices.
nanoutils
uses TIMES.md to check its performance time
We use approach with Performance Timing API. We have custom CLI as well with bunch of functions and helpers which combine data and compare it based on several runs. For some methods performance tests (i.e. ap.performance.js) are written where data is cached in JSON files.
Now not all methods are covered with performance tests. It will be done in future releases.
Roadmap
0.1.1 Transducers API introduction
0.2.0 Performance tests coverage
0.3.0 TS coverage
Team
- Idea of the project β Anton Kosykh
- Size compressor of the project β Alexey Berezin
- Performance accelerator of the project β Aleksandr Babkin
- Designer of the logo β Phil Murphy
Links
Thank you!
Alexey Berezin,
Front-end Developer from Yandex