awesome-tiny-js
🤏 A collection of tiny JS libraries (under 2 kB) to put your bundle on a diet
688 stars
15 watching
12 forks
Language: JavaScript
last commit: 11 days ago
Linked from 1 awesome list
awesomeawesome-listjavascripttinytypescript
Awesome Tiny JS / UI Frameworks | |||
preact | 36,634 | 3 days ago | React-like API (pre-hooks). Cool ecosystem of similarly tiny tools and components. Highly recommended |
hyperapp | 19,065 | about 1 month ago | vDOM framework with pure JS syntax and immutable state, |
redom | 3,420 | 3 months ago | Hyperapp-style templates with event listeners and updates, |
fre | 3,706 | 6 months ago | React-like library with hooks and concurrency, |
van | 3,814 | 21 days ago | vDOM-based framework optimized for no-build setups, |
superfine | 1,568 | about 2 years ago | Hyperapp with state & effect hooks removed, |
arrowjs | 2,376 | 5 months ago | Tagged templates + reactive data, |
umbrella | 2,287 | 5 months ago | jQuery-style DOM manipulation library, |
Awesome Tiny JS / Event Emitters | |||
mitt | 10,717 | about 2 months ago | Plain event emitter that I use on most projects, |
nanoevents | 1,470 | 3 months ago | Nicer unsubscribe API, but no event, |
onfire.js | 498 | over 5 years ago | Also has method, |
Awesome Tiny JS / State Managers | |||
zustand | 46,633 | 12 days ago | Simple stores with pleasant actions and selectors. Vanilla , React |
nanostores | 5,211 | 25 days ago | Modular store with good tree-shaking support, vanilla, + React extra. Supports all the top frameworks |
exome | 235 | about 2 months ago | Atomic stores with lots of framework connectors, + React extra. Supports all the top frameworks |
storeon | 1,978 | 15 days ago | Minimal redux-styled store with lots of framework connectors, . React extra + Vue, Svelte, Angular |
unistore | 2,855 | over 3 years ago | Centralized store with actions, + React |
teaful | 712 | almost 2 years ago | Store with useState-like API, , including React / preact connector |
Awesome Tiny JS / State Managers / Signals | |||
@preact/signals | 3,746 | 10 days ago | The OG signals from preact core, with react integration |
usignal | 212 | over 1 year ago | A smaller signal implementation, |
hyperactiv | 435 | 11 days ago | 4 functions to make objects observable and listen to changes, |
flimsy | 186 | 8 months ago | Signals from Solid (it fit into UI frameworks category itself). Author warning: |
Awesome Tiny JS / State Managers / Reactive Programming | |||
flyd | 1,563 | 8 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,633 | 17 days ago | Declarative router for React / preact, , also available as a standalone hook: |
@nanostores/router | 239 | 2 months ago | Routes as a nanostores store (framework-agnostic), |
navaid | 774 | 9 months ago | History-based observable router, |
matchit | 321 | almost 3 years ago | Route parser and matcher in |
regexparam | 564 | 10 months ago | Convert path to regexp in |
qss | 442 | over 1 year ago | Parse querystrings in . Not sure you need it, support is good |
Awesome Tiny JS / API Layer | |||
redaxios | 4,662 | about 1 year ago | Drop-in axios replacement for modern browsers, |
wretch | 4,791 | 10 days ago | Chainable API with error processing and lots of extra plugins, |
gretchen | 329 | about 1 year ago | Chainable API with type-safe errors, |
unfetch | 5,707 | about 1 year ago | Loose fetch polyfill, |
Awesome Tiny JS / I18N | |||
@nanostores/i18n | 224 | 2 months ago | Detect locale, load dictionaries, format dates / numbers, including nanostores |
eo-locale | 348 | about 1 year ago | Interpolation and dates / numbers, , or with react bindings |
rosetta | 785 | 9 months ago | Bare-bones template strings ( ) and custom functions for everyting else, |
lingui | 4,484 | 10 days ago | Small core with template strings, |
Awesome Tiny JS / Dates and Time | |||
date-fns | 34,607 | 12 days ago | Not tiny as a whole, but are under 1 kB each (format and parse are quite heavy) |
dayjs | 46,748 | 12 days ago | moment.js-compatible API, covers most use cases, |
tinytime | 1,337 | over 1 year ago | Simple date / time formatter: , |
tinydate | 1,064 | 9 months ago | Date / time formatter, only supports padded numeric output ( ), |
time-stamp | 111 | almost 4 years ago | More of the same, |
ms | 5,123 | about 1 month ago | Parse & format ms durations, e.g. , |
timeago.js | 5,306 | 2 months ago | Format dates into stuff like or |
fromnow | 190 | about 5 years ago | More of the same, |
Awesome Tiny JS / Generic Utilities | |||
remeda | 4,440 | 8 days ago | 90 tree-shakable helpers |
rambda | 1,646 | 9 days ago | 187 tree-shakable helpers |
just | 6,007 | 8 months ago | 82 helpers in separate packages |
@fxts/core | 881 | 24 days ago | 96 tree-shakable helpers. Lazy evaluation support |
Awesome Tiny JS / Validation | |||
v8n | 4,170 | 18 days ago | zod-style API with fine-grained checks: . No tree shaking, |
banditypes | 167 | over 1 year ago | The smallest validation library: |
superstruct | 6,978 | 5 days ago | The most popular modular validation library with good tree-shaking, |
valibot | 5,994 | 2 days ago | Another modular validation library, |
deep-waters | 199 | over 1 year ago | Composable functional validators, |
Awesome Tiny JS / Unique ID Generation | |||
@lukeed/uuid | 395 | 8 days ago | Real UUIDs, |
nanoid | 24,423 | about 1 month ago | Random IDs with larger alphabet, |
uid | 650 | 11 days ago | More of the same, |
hexoid | 192 | 9 months ago | Hexadecimal IDs, |
Awesome Tiny JS / Colors | |||
colord | 1,673 | about 1 year ago | Manipulate colors and convert between spaces, . Extra features come as plugins, 150b to 1.5 kB each |
colr | 104 | over 4 years ago | More of the same, |
polychrome | 287 | over 6 years ago | More of the same, |
randomcolor | 6,078 | 8 months ago | Attractive random colors with configuration |
Awesome Tiny JS / Touch Gestures | |||
alloyfinger | 3,427 | almost 6 years ago | Pan, swipe, tap, doubletap, longpress, pinch / rotate. My personal favorite. |
tinygesture | 205 | 10 months ago | Configurable pan, swipe, tap, doubletap, longpress. |
pointer-tracker | 184 | 11 days ago | Unified interface for mouse, touch and pointer events, |
detect-it | 415 | over 3 years ago | Detect present and primary input method (touch / mouse) and supported events, |
Awesome Tiny JS / Text Search | |||
js-search | 2,202 | over 1 year ago | Feature-rich and customizable: multi-field indices, stop words, custom stemmers and tokenizers |
ndx | 152 | over 1 year ago | Similar to js-search, differs in and is less strict for multi-word queries . Supports field weights |
wade | 2,975 | over 1 year ago | Also similar, |
libsearch | 162 | about 2 years ago | Index-free search (slower, but easier to use) with sane ordering |
stemmer | 129 | almost 2 years ago | - |
porter-stemmer | 99 | about 4 years ago | - |
Awesome Tiny JS / Text Search / Fuzzy search | |||
fuzzy | 828 | almost 3 years ago | Index-free, can highlight matches |
fuzzy-search | 222 | over 1 year ago | With stateful index |
fzy.js | 149 | 11 days ago | Matches one string at a time, tree-shakeable scores and match highlighting. total, or ~150 bytes for only |
fuzzysearch | 2,711 | 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 | over 1 year 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,368 | almost 3 years ago | Find misspellings, e.g. missipissi -> Missisipi, Commercial usage costs $42 |