awesome-tiny-js
Bundle trimmer
A collection of tiny JavaScript libraries to help reduce bundle size
🤏 A collection of tiny JS libraries (under 2 kB) to put your bundle on a diet
703 stars
15 watching
12 forks
Language: JavaScript
last commit: about 2 months ago
Linked from 1 awesome list
awesomeawesome-listjavascripttinytypescript
Awesome Tiny JS / UI Frameworks | |||
preact | 36,827 | 7 days ago | React-like API (pre-hooks). Cool ecosystem of similarly tiny tools and components. Highly recommended |
hyperapp | 19,082 | about 1 month ago | vDOM framework with pure JS syntax and immutable state, |
redom | 3,424 | 5 months ago | Hyperapp-style templates with event listeners and updates, |
fre | 3,715 | 8 months ago | React-like library with hooks and concurrency, |
van | 3,891 | 7 days ago | vDOM-based framework optimized for no-build setups, |
superfine | 1,597 | over 2 years ago | Hyperapp with state & effect hooks removed, |
arrowjs | 2,404 | 6 months ago | Tagged templates + reactive data, |
umbrella | 2,302 | about 2 months ago | jQuery-style DOM manipulation library, |
Awesome Tiny JS / Event Emitters | |||
mitt | 10,851 | 3 months ago | Plain event emitter that I use on most projects, |
nanoevents | 1,486 | about 1 month ago | Nicer unsubscribe API, but no event, |
onfire.js | 497 | over 5 years ago | Also has method, |
Awesome Tiny JS / State Managers | |||
zustand | 47,989 | 9 days ago | Simple stores with pleasant actions and selectors. Vanilla , React |
nanostores | 5,401 | 2 months ago | Modular store with good tree-shaking support, vanilla, + React extra. Supports all the top frameworks |
exome | 238 | 4 months ago | Atomic stores with lots of framework connectors, + React extra. Supports all the top frameworks |
storeon | 1,977 | 22 days ago | Minimal redux-styled store with lots of framework connectors, . React extra + Vue, Svelte, Angular |
unistore | 2,858 | over 3 years ago | Centralized store with actions, + React |
teaful | 713 | about 2 years ago | Store with useState-like API, , including React / preact connector |
Awesome Tiny JS / State Managers / Signals | |||
@preact/signals | 3,803 | about 1 month ago | The OG signals from preact core, with react integration |
usignal | 221 | about 1 month ago | A smaller signal implementation, |
hyperactiv | 439 | about 2 months ago | 4 functions to make objects observable and listen to changes, |
flimsy | 187 | 10 months ago | Signals from Solid (it fit into UI frameworks category itself). Author warning: |
Awesome Tiny JS / State Managers / Reactive Programming | |||
flyd | 1,563 | 10 months ago | Rx-styled event streams, |
callbag-basics | 1,650 | over 1 year ago | Rx-style event streams, |
Awesome Tiny JS / Routers and URL Utils | |||
wouter | 6,743 | about 2 months ago | Declarative router for React / preact, , also available as a standalone hook: |
@nanostores/router | 246 | about 1 month ago | Routes as a nanostores store (framework-agnostic), |
navaid | 783 | 10 months ago | History-based observable router, |
matchit | 322 | about 3 years ago | Route parser and matcher in |
regexparam | 568 | 12 months ago | Convert path to regexp in |
qss | 445 | over 1 year ago | Parse querystrings in . Not sure you need it, support is good |
Awesome Tiny JS / API Layer | |||
redaxios | 4,713 | over 1 year ago | Drop-in axios replacement for modern browsers, |
wretch | 4,830 | 6 days ago | Chainable API with error processing and lots of extra plugins, |
gretchen | 330 | about 1 year ago | Chainable API with type-safe errors, |
unfetch | 5,710 | over 1 year ago | Loose fetch polyfill, |
Awesome Tiny JS / I18N | |||
@nanostores/i18n | 229 | 4 months ago | Detect locale, load dictionaries, format dates / numbers, including nanostores |
eo-locale | 348 | 6 days ago | Interpolation and dates / numbers, , or with react bindings |
rosetta | 790 | 10 months ago | Bare-bones template strings ( ) and custom functions for everyting else, |
lingui | 4,613 | 9 days ago | Small core with template strings, |
Awesome Tiny JS / Dates and Time | |||
date-fns | 34,872 | about 2 months ago | Not tiny as a whole, but are under 1 kB each (format and parse are quite heavy) |
dayjs | 47,000 | 10 days ago | moment.js-compatible API, covers most use cases, |
tinytime | 1,338 | almost 2 years ago | Simple date / time formatter: , |
tinydate | 1,066 | 10 months ago | Date / time formatter, only supports padded numeric output ( ), |
time-stamp | 111 | almost 4 years ago | More of the same, |
ms | 5,159 | 3 months ago | Parse & format ms durations, e.g. , |
timeago.js | 5,325 | 4 months ago | Format dates into stuff like or |
fromnow | 190 | over 5 years ago | More of the same, |
Awesome Tiny JS / Generic Utilities | |||
remeda | 4,532 | 4 days ago | 90 tree-shakable helpers |
rambda | 1,658 | 16 days ago | 187 tree-shakable helpers |
just | 6,043 | 9 months ago | 82 helpers in separate packages |
@fxts/core | 936 | 11 days ago | 96 tree-shakable helpers. Lazy evaluation support |
Awesome Tiny JS / Validation | |||
v8n | 4,170 | 2 months ago | zod-style API with fine-grained checks: . No tree shaking, |
banditypes | 168 | over 1 year ago | The smallest validation library: |
superstruct | 7,024 | about 2 months ago | The most popular modular validation library with good tree-shaking, |
valibot | 6,262 | 6 days ago | Another modular validation library, |
deep-waters | 200 | almost 2 years ago | Composable functional validators, |
Awesome Tiny JS / Unique ID Generation | |||
@lukeed/uuid | 396 | about 2 months ago | Real UUIDs, |
nanoid | 24,655 | 24 days ago | Random IDs with larger alphabet, |
uid | 655 | about 2 months ago | More of the same, |
hexoid | 195 | about 1 month ago | Hexadecimal IDs, |
Awesome Tiny JS / Colors | |||
colord | 1,692 | about 1 year ago | Manipulate colors and convert between spaces, . Extra features come as plugins, 150b to 1.5 kB each |
colr | 105 | over 4 years ago | More of the same, |
polychrome | 288 | almost 7 years ago | More of the same, |
randomcolor | 6,092 | 10 months ago | Attractive random colors with configuration |
Awesome Tiny JS / Touch Gestures | |||
alloyfinger | 3,431 | almost 6 years ago | Pan, swipe, tap, doubletap, longpress, pinch / rotate. My personal favorite. |
tinygesture | 210 | 12 months ago | Configurable pan, swipe, tap, doubletap, longpress. |
pointer-tracker | 185 | about 2 months ago | Unified interface for mouse, touch and pointer events, |
detect-it | 419 | over 3 years ago | Detect present and primary input method (touch / mouse) and supported events, |
Awesome Tiny JS / Text Search | |||
js-search | 2,209 | over 1 year ago | Feature-rich and customizable: multi-field indices, stop words, custom stemmers and tokenizers |
ndx | 153 | over 1 year ago | Similar to js-search, differs in and is less strict for multi-word queries . Supports field weights |
wade | 2,978 | over 1 year ago | Also similar, |
libsearch | 163 | over 2 years ago | Index-free search (slower, but easier to use) with sane ordering |
stemmer | 129 | about 2 years ago | - |
porter-stemmer | 100 | about 4 years ago | - |
Awesome Tiny JS / Text Search / Fuzzy search | |||
fuzzy | 831 | almost 3 years ago | Index-free, can highlight matches |
fuzzy-search | 224 | over 1 year ago | With stateful index |
fzy.js | 152 | about 2 months ago | Matches one string at a time, tree-shakeable scores and match highlighting. total, or ~150 bytes for only |
fuzzysearch | 2,712 | over 1 year ago | One string at a time, does not compute score / rank |
liquidmetal | 295 | over 4 years ago | Quicksilver algorithm, prioritizes matches at start of word for command abbreviations (e.g. -> ). One string at a time |
quick-score | 158 | almost 2 years ago | Another quicksilver-based lib, tweaked for long strings. Built-in list filtering and sorting, or 1.2 kB for single-string scoring |
fuzzyset | 1,369 | almost 3 years ago | Find misspellings, e.g. missipissi -> Missisipi, Commercial usage costs $42 |