Ещё много не откаталогизированного здесь
example-node-server
примеры скриптов запуска в package.json
полное описание настроики и запуска node-приложения
шаблон проекта от предыдущего туториала
backpack - сборщик бэкенда
- hackathon-starter
- Koa.js REST, Jade, MongoDB, Passport, Mongoose, Redis, Websocket
- Koa APi RAML (с jsonschema-валидацией запроса-ответа), PostgresSQL с Sequelize'ом, JWT, Passport'ом, Nodemailer'ом, RabbitMQ, Redis'ом, Docker'ом, Vagrant'ом, Ansible'м
- holyjs
- node-daemons - с демонами на node.js
- multi-process-nodejs-example - воркеры, rabbit, redis
- koa-chat пример от Ильи Кантора
- Task-Manager-API Rest с авторизацией через jsonwebtoken
- express-mongo-db
- node-express-realworld-example-app
- коротенький пример для api
- пример multi-process приложения
- примеры http-серверов - кластеризованных и нет, на фреймворках и нет
- пример полноценного приложения парсера лайков
- пример полноценного приложения с тасками и задачами
- actionhero - фреймворк с комплектом на все случаи жизни: кластер, таски, кеш, чат, логирование, файловый сервер, etc
- Настройка проекта на Node.JS с нуля, видео
- Исходники по книге "Building apis with nodejs"
- Куча примеров по взаимодействию express/koa с различными БД (neo4j, rethink, redis, etc)
- Пример с jwt-авторизацией
- Создание бота для Steam по шагам
- Пример с Koa, TypeORM, роутами и контроллерами
- Каркас api от команды Koa
- Boilerplate с Express, GraphQL, PG (с миграциями на knex'е), авторизацией (сессии в Redis'е), рассылкой (+шаблоны для email'ов) и всё это в Docker'е
- Полный фарш с Vue.js, passport, GraphQL, nodemailer'ом, http2, i18n, логированием, webpack'ом
- Пример контроллера для endpoint'ов
- Koa, Knex, crud, аутентификация, пагинации
- ^^^ Тоже самое ^^^, только на express'е
- Файловый шарилка на докере, с rest api и интерфейсом для разных хранилищ
- Honeypot-логгер tcp/udp пакетов, статья
- пример с nginx и haproxy, статья
learnyounode
- интерактивная cli-обучалкаcote
- набор библиотек для построения микросервисного кластера (статья)hotel
- управление и старт локальных dev-доменов для локальных проектов на всевозможных технологияхcross-spawn
/execa
/respawn
/shell-exec
puka
- экранирование shell-команд дляchild_process.span/.exec
mz
- промайзнутые системные библиотекиcaller
- выдаёт путь модуля, который про'require'ил текущийapp-module-path
- require хук, для маппинга кастомной рутовой директорииnode-notifier
nodejs-dashboard
re2
- нативный биндинг к гугловскому движку регулярокRE2
, которая обеспечивает безопасные от ReDoS регулярки.reify
/@std/esm
- врубаетimport
без бабелей/вебпаков (статья про@std/esm
)open
- открывает ссылку в дефолтовом браузере системыtoobusy-js
/blocked
- определяет заблокирован ли event loopjs-meter
- замеры и форматирование потребляемой памяти/cpu/etcnode-memwatch
/memwatch-next
- следит за утечками, можно зафорсить сборку мусораmemory-usage
- поток с мониторилкой потребления памяти / кастомная мониторилка потребления памятиlight-cycle
- реализация hashringcycle (аналог round-robin) для выбора шардов на летуhyper
- кроссплатформенный терминал на electron'еmediacenterjs
- браузерный персональный медиацентрdetect-node
- запущен ли текущий код из под нодыlocaltunnel
- шарит локальный адрес наружуhost-env
- определение серверной платформы, на которой запущена нодаsnyk
/nsp
/npm audit
- автосканер кода и зависимостей на известные уязвимостиwebworker-threads
/workerpool
- webworker'ы для нодыshm-typed-array
- shared memory для node'ыv8-natives
- вызов нативных v8-методов, в т.ч. принудительный вызов gcpkg
- упаковывает всё node.js-приложение в один исполняемый файлcls-hooked
np
- нормальная заменаnpm publish
pkg-ok
- некоторые автоматические проверки пакета перед публикациейwebpack
(bundle-buddy
,electron-webpack-dashboard
)watchpack
/chokidar
nodemon
/supervisor
/onchange
/chokidar-cli
- вотчинг изменений и запуск таски/процессаdiarrhea
- уменьшает вес бэкенд сборки, выпиливая мусор из зависимостей, статьяbrowser-sync
bundlesize
/sizelimit
- для контроля размеров сборкиparallelshell
/npm-run-all
/concurrently
- для запуска нескольких одновременных задач изnpm run
better-npm-run
cross-env
- для кроссплатформенной установки переменных окружения изnpm run
shelljs
- bash-функции прямо в нодеshx
- кроссплатформенные bash-функции в скриптахpackage.json
(обёртка надshelljs
)npm-which
- аналог консольногоwhich
для наждения бинарников установленных npm-пакетовprecommit-hook
- тулза запускающая npm-скрипты на коммитыhusky
- не даёт коммитить/пушить, если выполнение чего-то подобного:{ "scripts": { "precommit": "npm test", "prepush": "npm test" } }
прошло с ошибкамиlint-staged
- запускает линтинг и форматирование только изменившихся в коммите файловcommitizen
- интерактивка для сообщений к коммитам (fix/refactor/test/etc) +cz-conventional-changelog
иconventional-changelog-cli
- генератор ченжлогов на основе таких коммитовvalidate-commit-msg
- валидатор сообщений к коммитамstandard-version
- автоматический changelog при обновлении версии на основе сообщений к коммитамnpm-check
- тулза для обновления зависимостей с консольным uiis-ci
- проверяет, запущен ли код в ci-окруженииis-ci-cli
- позволяет для разных ci-окружений запускать разные npm-скриптыin-publish
- обнаружение в npm-scripts факта запуска публикации пакета (во время локальной разработки), чтобы делать что-то, что не нужно делать во время dev-установкиspritesmith
/sprity
(sprity-gm
) /directory-encoder
- генераторы спрайтов и css к нимsvg-mixer
- генератор svg-спрайтовsqip
- делает из png svg'шку с градиентом основных цветов изображения
- В консоли хрома встроенными стредствами
ndb
- в консоли хрома, но через puppeteer
node-inspector
devtool
iron-node
fastify
- более быстрая замена express'уserver
- обёртка надexpress
, с блэкджеком, async/await'ами и нормально настроенными минимально необходимыми мидлварями из коробкиexpress-promise-router
- нормальная promise-обёртка для всех методов роутераexpress-rate-limit
,express-brute
- мидлваря для предотвращения брута, похож на rate-limit- pillarjs - много low-level вкусняшек
express-generator
compression
vhost
- для поддоменов (напримерapi.domain.tld
)body-parser
multer
дляmultipart/form-data
express-fileupload
formidable
- парсерform-data
(специально дляmultipart/form-data
-стримов)morgan
для логов со стриммингомresponse-time
connect-timeout
basic-auth-connect
(deprecated) /basic-auth
negotiator
/accepts
hall
- роутер. но нафига?express-redirect
forcedomain
express-uncapitalize
(todo: проверить - возможноexpress
имеет встроенные средства для таких редиректов)redirect-trailing-slash
/express-slash
/connect-slashes
maintenance
- перевод приложения в режим "обслуживания" через post-запрос к определённому урлу с отдачей статичной страницыexpress-session
sticky-session
- шаринг сессий между воркерами (например, с помощьюcluster
)cookie-parser
cookie-signature
- подпись кукconnect-redis
(сессии в редисе) /express-mysql-session
(сессии в mysql)securelogin
- описаниеexpress-urlrewrite
- 301 редиректclearsitedata
- устанавливает специальный заголовок, чтобы браузер почистил кэш, куки, стораджи (полезно при логауте)express-validator
- для валидации данных в теле запроса (надстройка надvalidator
)host-validation
- whitelist-хостовHost
иReferer
заголовках для защиты отDNS Rebinding
атакratelimiter
,async-ratelimiter
- rate limit запросов с хранилищем в редисе /limiter
(но по-хорошему этим должен заниматься nginx)portastic
- нахождение свободных локальных портов (удобно для dev-запуска) /portscanner
- тоже самое, но, возможно, работает и для внешних айпишников /get-port
- берёт заданный порт либо рандомный, если занятserve-static
- встроен в сам экспрессhttp-server
- http сервер статики одной командой из консолиhttp-proxy-middleware
- полезная гибкая штука для перенаправления запросов на другие сервераexpress-request-language
rest-sugar
- обёртка для rest. нормальный сахар для rest'а надо поискатьexpress-resource
(очень старый) /restler
- restjoin-monster
- GraphQL -> SQLmethod-override
connect-rid
- генератор request-idkraken-js
- мощный boilerplate и конфигуратор для express'а и всякие штуки в него входящие, типаexpress-enrouten
express-status-monitor
express-expose
/express-state
- выдёргивание серверных методов и переменных на фронт в шаблонизатор (особо не нужен, но мало ли)greenlock
- клиент дляlet's encrypt
(вроде как). туда же:greenlock-express
,auto-sni
apollo-server-express
- GraphQLepilogue
- быстрое создание rest endpoint'овclipboardy
- кроссплатформенный доступ к системному буферу обмена
app.set('strict routing', true);
app.set('x-powered-by', false);
koa-router
(почти полностью повторяет экспрессовый роутер) /koa-route
(облегчённая версия) /koa-trie-router
(илиwayfarer
) - composable роуты, как в express'е /koa-66
koa-mount
- чтобы как в express'е - можно монтировать инстанс в роут другого инстанса@koa/cors
koa-bodyparser
lusca
/helmet
(helmet
лучше),csurf
- csrf (этот лучше),cors
,frameguard
koa-helmet
koa-jwt
,jsonwebtoken
. Видео Ильи Климова о JWT, репозиторий, описание принципов JWTkoa-response-time
koa-session
- на куках /koa-generic-session
- на редисе/монге/mysql/pg/sequelize/etckoa-redis
koa-static
/koa-send
/koa-etag
/koa-conditional-get
- для статикиkoa-compress
koa-views
koa-logger
apollo-server-koa
- GraphQL- Много нужного есть здесь
Koa для получения списка ip просто парсит
X-Forwarded-For
, в то время какexpress
использует более комплексныйproxy-addr
. Вот надо как-то подружитьkoa
сproxy-addr
.
micro
cote
studio
socketcluster
primus
seneca
socket.io
- стандарт дефакто, но давным-давно раздулся и уехал не в ту сторону.sockjs
- проще, понятнее, предсказуемее.uws
- прозрачная (почти) заменаws
с лучшей производительностьюprimus
- универсальная обёртка над всеми socket-realtime фреймворкамиpassport.socketio
/express-socket.io-session
- шаринг сессии между экспрессом и socket.ionats
- клиент для nats-сервера на gonchan
- клиент для nginx-модуляnchan
, статья
cosmiconfig
- поиск конфига поключ
у в package.json, в.ключrc
, включ.config.js
rc
(советует Илья Климов) - подход такой же, как и уcosmiconfig
nconf
/config
/confit
.config
похож наnconf
, но вроде поширше,confit
выглядит самым вкусным (к тому же он отkraken
'a).dotenv
/dotenv-safe
(отличается отdotenv
тем, что проверяет - установлены ли все переменные, которые есть в файле.env.example
),env-cmd
jsonfile
electrode-confippet
configstore
- удобно записывать пользовательские конфиги, например Подход к конфигурации для разных окружений и под docker
passport
и его стратегии (в т.ч.passport-local
,passport-hash
,passport-securelogin
)grant-express
- заменаpassport
-у. есть как для express'а, так и для koapermit
- простой способ авторизации по Bearer токенуpasswordless
jsonwebtoken
oauth
(провайдерыhellojs
,grant
)svg-captcha
- презентация, где рассказывается про debugging
- Ещё про отладку. Хардкор!
loud-rejection
/hard-rejection
/make-promises-safe
(лучше) /uncaught
- ловля необработанных ошибок/реджектов для ноды и браузеровhttp-errors
/boom
- удобная обёртка для посыла http-ошибок /micro-boom
http-assert
- assert-обёртка надhttp-errors
create-error
/es6-error
/error3
/super-error
, ещё гист на тему /node-exceptions
- враппер для создания собственных классов ошибок /verror
- на стеройдах с printf для сообщений и вложенными цепочками ошибокstacktrace-js
(асинхронный) /stacktrace-parser
(синхронный, используется в ReactNative) /tracekit
/error-stack-parser
(похоже на правду) - парсер стектрейсов, унификация всего того, что выплёвывают браузерыshow-js-error
, трекинг ajax-ошибок в метрикуserialize-error
- объект ошибки в jsonerrorhandler
- для рендера ошибок на клиент (only dev)api-error-handler
- http-ошибки (4xx-5xx) заворачивает в jsonpretty-error
- приятный вывод ошибок в консоли- ещё пример создания http-ошибок
death
/signal-exit
/ пример graceful shutdownhttp-shutdown
- правильно закрывает все сокеты и keep-alive соединения /server-destroy
- из той же оперыon-finished
- вызывает колбэк, когдаres
завершён, в т.ч. с ошибкой или он был прерванtree-kill
- убить self-процесс и все дочерние форкиnode-report
- human-readable diagnostic summary, written to filetrace
- максимально удлиняет стек вызовов в стектрейсахclarify
- вырезает из стектрейсов строки с системными вызовами (node --stack-trace-limit=1024 -r trace -r clarify wired.js
)stack-chain
- кастомный парсер стектрейсов для маппинга/фильтрации/etcstacktracey
- парсинг колстека с соурсмапами и читабельным выводомstackman
@ymatuhin/onerror
youch
- генерация html-страницы с ошибкой, как в первом nuxt'е- пример с trace, clarify и stack-chain
- подходы к локальной обработке ошибок и их логирования на сервер
- сервисы для отправки и анализа непойманных ошибок:
- https://stacktracejs.com/
- https://sentry.io/
- https://errorception.com/
- http://www.muscula.com/
- http://rollbar.com/
- Raven.js
- airbrake.io
- bugsnag.com
- https://habrahabr.ru/post/324366/
- https://habrahabr.ru/post/344802/
- https://habrahabr.ru/company/ruvds/blog/344682/
- newrelic.com / splunk.com - полнофункциональный saas для мониторинга и аналитики
- Raygun
- OverOps
- StackHunter
- VBATelemetry
- Appenlight
- обзорная статья
strong-cluster-control
fs-extra
,graceful-fs
/upath
- улучшают встроенныйpath
resolve
/enhanced-resolve
(асинхронный) - нодовый алгоритм резолва путейnode-dir
- доп.плюшки для работы с директориямиpath-exists
is-absolute
,is-relative
normalize-path
relative
- расширенныйpath.relative()
commondir
- находит общую родительскую папку для списка директорий (на уровне строк, а не фс)path-is-inside
- проверяет находится ли директория внутри другой (на уровне строк, а не фс)find-cache-dir
- возвращает путь к директории-кэшу внутриnode_modules
(чтобы была своя папка-помойка как уbabel-loader
-а илиeslint-loader
-а)sanitize-filename
- очищает строку от спецсимволов и "папок", делая её валидным названием файлаparse-filepath
- добавляет некоторые поля к стандартному выводуchokidar
/watchpack
- вотчеры фсanymatch
- матчер по чему угодно (глоб, регэксп, етс)glob
/globby
/glob-all
/minimatch
/multimatch
ignore
/glob-gitignore
- glob-фильтр файлов согласно правилам.gitignore
is-dotfile
file-type
- определятор типа файлаklaw
- фс-walker на стримахtouch
- аналог консольногоmkdirp
/make-dir
(лучше)del
filenamify
unused-filename
- добавляет к строке(1)
,(2)
и т.п., если файл с таким именем существуетncp
- асинхронное рекурсивное копирование файлов и папокmove-concurrently
- самое быстрое (на сколько вообще возможно) перемещение файловproper-lockfile
-lock
-файлsteno
- помогает при конкурентной записи в файл - делает все вызовы на запись последовательноtmp
/os-tmpdir
/tempy
/temp-dir
- работа с временными файлами и директориямиos-homedir
user-home
cacache
- умное управление файловым кешемssri
- работа с Subresource Integrity
event-stream
split2
through2
shaper
- ограничитель скорости потокаisstream
lazypipe
destroy
fs-write-stream-atomic
pump
- pipe'ит стримы и закрывает все, если хоть в одном из них произошла ошибкаend-of-stream
/on-stream-end
stream-throttle
duplexify
(дляstream1
иstream2
) /duplexer2
(дляstream3
) - объединяет writable и readable стримы в одинget-stream
- Собирает стрим в кучу и промисом выдаёт результат в виде строки или массиваget-stdin
- То же, что иget-stream
, но для stdin-процесса
highland
xstream
most
rx
zen-observable
mysql2
/mariasql
pg
/pg-native
/pg-promise
,pg-format
- расширенный prepare statements, примерknex
/sql
/squel
/sqorn
(pg only) - query builder'sbookshelf
/objection
(лучше) - эти orm поверхknex
-а /sequelize
(sequelize-auto
,sequelize-definer
,sequelize-hierarchy
,sequelize-values
) /typeorm
ioredis
/redis
/hiredis
,redlock
reds
- поиск в редисеrethinkdb
node-localstorage
(этот держит данные в памяти) /dom-storage
(этот пишет данные в файл) - localStorage для NodeJSlowdb
- файловая json-бд поверх lodash'а
object-inspect
chalk
/ansicolors
- раскраскаbetter-console
- добавление console.table-методовcllc
/multispinner
/observatory
/ora
/draftlog
/listr
- вывод с лоадеромcommander
/vorpal
- настройка cli-аргументов для запуска приложения (с блекджеком и генератором справки)liftoff
- bin'арник для своего пакетаeyes
- цветной вывод данныхinquirer
- cli-промптерminimist
/nanomist
/yargs
/nopt
/optionator
/meow
- парсеры и организаторы cli-аргументовprogress
/gauge
- настраиваемый прогресс-барboxen
- оборачивание сообщения в настраиваемую рамкуdedent
- убирает общие ведущие пробелы/табы каждой строки в шаблонных строках, выравнивая текст по левому краюtable
/text-table
(попроще) - таблицы в консолиgtop
- консольный мониторинг системыupdate-notifier
- уведомить в консоли о наличии новой версии своего пакета (как это делает сам npm)- форматирование
console.time
а
abstract-logging
- заглушка для стандартных методов логирования (для подмены, если логгер не установлен)ololog
debug
microlog
intel
/bunyan
/log4js
/tracer
/winston
/eazy-logger
/glogg
/lggr
- многоуровневое (danger/error/fatal) логирование куда угодно - консоль, файлы, stdout (log4js
медленный,winston
- популярный,tracer
- интересный) /loglevel
(loglevel-plugin-prefix
) /whiner
/pino
([сайт](http://getpino.io/#/ -pino
должен быть самым быстрым /consola
- от команды nuxt'аgelf-stream
/gelf-pro
- https://habrahabr.ru/company/2gis/blog/329128/mozlog
streamroller
/file-stream-rotator
- ротация файлов логов- пример обёртки для системы логирования
lodash
/iterare
/fast.js
/ just /jsprim
object-path
/dottie
- продвинутый_.get()
,dot-object
,undefsafe
/to-object-path
/dlv
- работа с json-объектами в виде dot-нотации,generate-object-property
only
- замена_.pick()
от TJtableize
- схлопывает (сворачивает) json-структуру в объект вида{'level1key': 'level1value', 'level1key.level2key': 'level2value'}
/unbend
- то же самое, но через слэш (для построения урлов)@sindresorhus/is
,isemail
,is-svg
,isstream
,is-glob
,is-dotfile
,is-absolute
,is-relative
/is-buffer
(в т.ч. для браузера) - проверка типовkind-of
- замена typeofJSONSchema
/ajv
,ajv-keywords
/z-schema
- создание и валидация JSONScheme'ы,cast-with-schema
,json-schema-deref-sync
/turbo-json-parse
(не поддерживает весь стандарт))type-check
- можно строить целые схемы для проверки типов,levn
- кастует типы на основеtype-check
-схемы /fast-json-stringify
- сериализует объект на основе схемы, кастуя значенияparse-strings-in-object
- строковые значения в объекте автоматически преобразовывает в соответствующие типы ('true' = > true
,'3.14' => 3.14
,'null' => null
)joi
/schema-inspector
/validator
/forms
/superstruct
/validate.it.js
/yup
/checkit
- санитизация/валидацияhaye
- парсер строки с перечнем валидаторов как у Laravel'аow
- прикольная валидация аргументов функцийstring
/strman
- если лодашевских методов работы со строками будет не хвататьromanize
,deromanize
- конвертация в римские цифры из арабских и обратноnumeral
- работа с числамиgoogle-libphonenumber
- крутая штука для парсинга номеров телефоновprintable-characters
- набор функций для работы с невидимыми печатными символами (определение длины, etc)to-regex-range
- генерация регулярки для матчинга диапазонов чисел (как бы глупо ни звучало, но штука полезная для валидации всяких индексов и т.п.)safe-regex
- проверка регулярок на быстроту выполнения - Regular expression Denial of Service (ReDoS)scmp
- безопасное от timing attacks сравнение буфферов (т.е. всегда за константное время), использует нодовыйcrypto.timingSafeEqual()
, если доступенmoment
- это, понятное дело, дата/время (+helper-moment
для шаблонов) /date-fns
- улучшенная (и при этом проще) библиотека для манипуляций с датами /dayjs
- ещё одна маленькая либа для манипуляций с датами /jstimezonedetect
- для браузера (в основном) /spacetime
- для работы с датами и временными зонамиdate.js
- парсер человекопонятных дат английском языкеaccounting
- парсер чисел и валют (в основном валют)currency-formatter
- форматтер валютhuman-interval
- парсер человекопонятных интервалов на английском языкеfilesize
- человекопятный размер файловpretty-hrtime
/performance-now
- человекопятныйprocess.hrtime()
humanize-number
- человекопонятные числаexpiry-js
/ms
- парсер длительностей (1M, 1Y, 1h, 1m, 1s, 1ms, etc)pretty-ms
- форматирование миллисекундnormalizr
,reselect
- для flux-архитектурыnormalize-object
- нормализует все ключи объекта (рекурсивно) в выбранной нотации - camelCase, kebabCase и т.п.deep-diff
/diff
/jsondiffpatch
/jiff
/just-diff
,just-diff-apply
/arr-diff
,fast-json-patch
diff
- реализация алгоритма diff'а текста (шоб можно было сделать прям как на гитхабе) /fast-diff
deep-equal
/fast-deep-equal
fastest-clone
/rfdc
- быстрое клонирование /fclone
- быстрое клонирование с учётом циклических ссылок /deepcopy
- гибко настраивается функциейreviewer
-омdeepmerge
deep-freeze
BitArray.js
(git) Очень оптимизированный массив для хранения битовых флаговpako
- zlib для jsyauzl
- unziplz-string
- мощное сжатие/декомпрессия строк для хранения, к примеру, в localStoragequickselect
bintrees
- самосортируемая структура с бинарным поискомcuint
/bignumber.js
/long
/bn.js
/bigi
/json-bigint
/leemon
- big integer для jsflatstr
- ускоряет работу с большими конкатенированными строками (каким-то образом запускает внутреннюю оптимизацию v8)media-typer
- парсер mimemime
/mime-db
/mime-types
- полный набор по работе с mime /whatwg-mimetype
memored
- шаринг данных между форками процессаtheorem.js
- комбайн с вычислениями по алгебре, геометрии, статистики, работе с числами, единицами измерения и т.п.
supertest
mocha
(chai
) /jasmin
(karma
) /nodeunit
/ava
/tape
/jest
(jest
/ava
предпочтительнее)mocha-allure-reporter
-allure
- это репортер со своим веб-интерфейсом, преферансом и графиками
request
(request-promise
),@request/interface
,@request/api
,requestretry
/axios
,axios-retry
/ky
,ky-universal
/needle
/node-fetch
/@hapi/wreck
/got
/superagent
/urllib
dnscache
caw
/proxy-agent
request-capture-har
- захват всегоrequest
-траффика для последующего анализаdownload
/getit
is-retry-allowed
- на основании кода ошибки запроса определяет - можно ли делать запрос повторноis-online
- есть ли коннект с интернетомis-reachable
- есть ли коннект с конкретным ресурсомtunnel
follow-redirects
type-is
- проверка типа содержимого запросаhttp-status
/statuses
fresh
- проверяет по заголовкам - нужно отдать304 Not Modified
или нет.on-finished
- вызывает колбэк, когдаreq
илиres
завершён, в т.ч. с ошибкой или он был прерванrequest-stats
- выдирает из req/res только полезную для логов инфуform-data
- создаёт readablemultipart/form-data
-стримы. Для отправки данных формы и загрузки файлов в другие http-apinock
/light-my-request
(отfastify
) - mock'и для http-запросов (удобно для тестирования и заглушки api)slimbot
- бот для телеграммаnode-vk-bot-api
- бот для вкinstagram-private-api
- неофициальное api для инстаграмма с полной эмуляцией андройд-клиента (на питоне популярнее и обновляется чаще)socks5-https-client
apiai
- распознавание голоса с помощью гугловского api.ai
browser-env
jsdom
/cheerio
/whacko
/parse5
json5
- json с блекджеком и комментикамиstrip-json-comments
- тут понятноnode-readability
/read-art
- вычленение основного и главного из всей страницыsemantic-schema-parser
- парсер schema.org: microdata, RDFa-lite, JSON-LDweb-auto-extractor
- парсер schema.org: microdata, RDFa-lite, JSON-LDpage-metadata-parser
- парсинг метаданных страницы - мета-теги, opengraphopen-graph-scraper
- парсер opengraphcsv-stringify
,fast-csv
/csv-streamify
/papaparse
/csv
/csvtojson
xml-mapping
- json в xml и обратноxmldoc
js-yaml
html-tokenize
JSONStream
/json-depth-stream
- потоковый парсер огромных json'овmarked
/markdown-it
- md2html,turndown
- html2md,showdown
- в обе стороныhtml-to-text
sanitize-html
/escape-html
/jsesc
/he
/xss
/insane
(jevix
для js)feed-read
- парсер rss фидовbraces
/brace-expansion
- парсит и разворачивает bash-like скобки:a/{b,c}/d
=>['a/b/d', 'a/c/d']
,{01..03}
=>['01', '02', '03']
,{2..10..2}
=>['2', '4', '6', '8', '10']
curly-braces
- проверяет валидность вложенных скобок.(){}[]
и([{}])
- валидно, а[(])
- нет
docxtemplater
excelize
/exceljs
/excel4node
xml2js
/x2js
/fast-xml2js
js-xlsx
/xlsx
- парсер и запись xls-форматовpdfjs-dist
- парсер и рендер pdf от mozilla'ыpdfkit
pdf2json
relaxedjs
- рендер pdf'а из html/pug шаблонов, с полным использованием css, клиентском js, markdown'а и LaTex'а.
nightmare
chromeless
/puppeteer
- обёртка над безголовым хромом- парсинг с puppeteer
headless-cat-n-mouse
- обнаружение и обход обнаружения headless-браузеров, репозиторийnode-horseman
- promise-обёртка над фантомом с апи, как у nightmareuirecorder
- что-то вроде selenium от alibaba'ыleadfoot
(кроссплатформенная) /taxi-rank
/webdriverio
- обёртки над Seleniumnightwatch
- тестировщик для работы с phantom/chromedriver напрямую, к тому же комбайн: инструмент для общения с браузером, фреймворк для тестов и библиотека ассертов.codeceptjs-(webdriverio|nightmare|protractor)
- тест-фреймворк с обёртками над headless-браузерамиrobotjs
- полная кроссплатформенная desktop-автоматизация- Chrome Headless
simplecrawler
crawler
scrape-it
x-ray-crawler
recrawler
node-simple-crawler
osmosis
- интересный
proxy-search
proxylist
auto-proxy
- прокси поверх tor'а
http-proxy
- свой прокси-сервер на нодеhttp-mitm-proxy
- свой прокси-сервер на нодеanyproxy
- свой прокси-сервер на ноде от alibaba'ыproxy-addr
- определяет адрес проксированного запроса (из объектаreq
)
useragent
- парсер/матчер/компаратор юзерагентовrandom-useragent
ua-parser-js
- клиентский парсер user-agent'а
js-cookie
cookie
tough-cookie
,tough-cookie-filestore
cookies.txt
react-cookie
cookies
- это для express'а/koa, и вряд ли нужен /node-cookie
- тоже для создания/чтения/подписи кук из/вreq
/res
pageres
- под капотомcapture-website
capture-website
- под капотомpuppeteer
webshot
html2canvas
- Скриншотилка на базе безголового хрома
- Скриншотилка в pdf as-a-service на базе безголового хрома
parseurl
,qs
ip
/ipaddr.js
/ip-address
is-ip
ip-regex
- регулярка для ipstun
- определение своего внешнего ip-адреса по stun-протоколу (список доступных публичных серверов) /public-ip
- определение внешнего ip через dns-запрос /internal-ip
- определение локального ipgeoip-lite
/maxmind
(+ поискать для sypexgeo). Свой сервис - freegeoip /geoip-local
fast-url-parser
иquerystringparser
url-parse-lax
- расширенный url.parse - без протоколов и с ipencodeurl
cyrillic-to-translit-js
filenamify-url
valid-url
humanize-url
normalize-url
prepend-http
- ну такое, особо бессмысленноеprotocolify
urijs
url-pattern
proxy-addr
- определяет адрес проксированного запроса (из объектаreq
), под капотом юзаетipaddr.js
иforwarded
path-to-regexp
- превращает строки вида/foo/:bar
в регекспы вида/^\/foo\/([^\/]+?)\/?$/i
(полезно для написания роутера, используется воvue-router
)is-google
- по ip проверяет сделан ли запрос от гуглобота, или кто-то просто подделал user-agent, чтобы им притворитьсяslug
- делает замену пробелов и unicode-символов (даже emoji) для пригодности в урл Чекалки ip:
faker
faker.js
json-schema-faker
hashids
/identifier
- строки из чиселnode-uuid
/uid-safe
/nanoid
/cuid
/shortid
/nuid
/hyperid
(самый быстрый, с декодером)sguid
randexp
- генерация строки по регэкспуstjs
- json-шаблонизатор для генерации json'аchance
- gencc валидных номеров кредитных карт
seedrandom
random-js
/mersenne-twister
random-seed
brorand
- кросс-платформенныйcrypto.getRandomValues
chance
simple-statistics
- статистические функции (в т.ч. комбинаторика и перестановки)cartesian
js-combinatorics
foreach-combination
math-combination
allcombinations
- на генераторахlexicographer
- лексикографическая пермутация на генераторахget-permutations
,get-unique-permutations
@aureooms/js-permutation
generatorics
- есть и permutations, и combinations, и cartesian, и всё это на генераторах
murmurhash-native
/imurmurhash
- быстрое и (вроде как) наименее коллизионное хэшированиеhash-sum
/hasha
/js-md5
/object-hash
xxhashjs
json-stringify-safe
/circular-json
/stringify-object
-JSON.stringify()
с обработкой циклических ссылок@nuxt/devalue
- какjson-stringify-safe
, но ещё экранирует js-содержимое для предотвращения XSS (чтобы напрямую в html можно было записать'window.state = '+ devalue(state)
), обрабатывает Map/Set/date/регулярки и т.п.serialize-javascript
- от yahoo. как@nuxt/devalue
, ноnuxt
вместо него написал свойdevalue
(возможно потому, что не обрабатывает циклические ссылки?)json-stable-stringify
- от substack'а, детерминированныйJSON.stringify()
(даже если порядок ключей разнится от среды выполнения), с лицензией зависимости есть проблемы /json-stable-stringify-without-jsonify
- просто форк первого без проблем с лицензиями /fast-json-stable-stringify
- допиленный форк первого, порядок с лицензиями, но сильно быстрее /fast-stable-stringify
- самостоятельная реализация, не проверяет на циклические ссылки и вообще без опций, поэтому самый быстрый@hapi/bourne
-JSON.parse()
с защитой от инъекции__proto__
bcrypt
/bcrypt-nodejs
/pwd
/pswd
/bcryptjs
(чистый js - для браузера, использует Климов) - для паролейkeygrip
- подпись и валидация подписанных данных (module for signing and verifying data (such as cookies or URLs) through a rotating credential system)simple-encryptor
- криптор/декриптор строк/объектов по ключу
bluebird
/aigle
/neo-async
-async
для промисовrelike
/universalify
(используется вfs-extra
) /awaiting
/pify
- промисификацияawaity
- bluebird-lodash для промисов на async/await'ахp-progress
- промисы с прогрессом (много интересного для промисов)p-timeout
- таймаут для промисовthunkify
- callback'ифицирует callbacks, arrays, generators, generator functions, and promisesinflight
/promise-inflight
- оборачивает функцию таким образом, что можно вызывать функцию-обёртку несколько раз с разными коллбеками, а когда вызов функции завершит выполнение, то все коллбеки будут выполненны последовательно и асинхронноco
inherits
sliced
d
- удобный описатель дескрипторов свойствdelegates
- делегация методов и пропертей прототипа к какому-либо свойству этого прототипаfunction-done
/always-done
generate-function
-new Function
на стеройдахlru-cache
/hashlru
/node-cache
/tiny-lru
/p-cache
/sacjs
mem
/fast-memoize
/p-memoize
(для промисов)wrappy
- оборачивает функцию, перенося все кастомные пропертя этой функции в обёртку. полезно (внезапно) для обёртокshimmer
- типа Proxy через monkeypatchingware
/middleware-chain
- создание кастомной цепочки мидлварей (прям как в express'е)internal
- созданице цепочки тасков, как у Nightmarearchiver
- архиваторffi
- работа с системными библиотеками без написания c++ обёртокapiai
- распознавание голоса с помощью гугловского api.ai
retry
(async-retry
,promise-retry
,promise-poller
) /tolerance
/requestretry
/axios-retry
/p-retry
is-retry-allowed
- на основании кода ошибки запроса определяет - можно ли делать запрос повторноasync-throttle
async/queue
/async/priorityQueue
raf-throttle
- throttle на requestAnimationFramesemaphore
- ограничитель одновременного доступа к ресурсуfunction-rate-limit
/express-rate-limit
/rate-limiter-flexible
(универсальный)p-queue
- очередя на промисахkue
(kue-ui
) /bull
/bee-queue
- очередя на редисеnode-resque
- тоже очередя на редисе (порт с ruby, судя по всему)agenda
- очередя на монгеaxon
- zeromq на нодеamqplib
/tortoise
- клиент для rabbitmqnats
- клиент для nats-сервера на goqueue3
enqueue
fastqueue
argumentable-queue
generic-pool
denque
@blakeembrey/deque
- двухсторонняя очередьnode-schedule
- flexible cron-like and not-cron-like job schedulercron
cron-parser
are-we-there-yet
- трекинг статусов выполнения у коллекции задач и стримов- пример на async-await'ах
- wal-лог
whatwg-encoding
encoding
iconv-lite
iconv
text-encoding
jschardet
- определение кодировки
aps-rql
- https://habrahabr.ru/company/odin_ingram_micro/blog/331774/pegjs
- произвольные синтаксические конструкцииfastparse
esprima
- парсер ECMAScript на ECMAScriptparser-base
- каркас для строкового парсера (подобиеjson5
)parsimmon
- parser combinatorunified
nodemailer
/postmark
/emailjs
mailgen
/mailmason
/ bojler,email-templates
- html-шаблоны для мылаnonprofit-email-service
mailit
- готовый микросервис для отправки email'ов через http-apipremailer
/inlining
/juice
- обработка html для email (inline'инг стилей, etc)mjml
- годный шаблонизатор для email-писемdisposable-email
- база доменов, которые используют сервисы временных email'ов- Bulletproof email buttons
sharp
/jimp
- полнофункциональная обработкаgm
/graphicsmagick2
image-size
image-type
resemblejs
- сравнение изображенийpixelmatch
- создание diff'а изображенийtesseract.js
- распознавалка текстаnode-openalpr
- распознавалка номерных знаков на нейронных сетях, tesseract'е и opencvexif2
/gm-exif
/libexif
/exif-parser
gify
/gifski
- делает гифку из видео (второй ещё и высококачественные)pngjs
,jpeg-js
jsqr
- считывалка qr-кодов с изображений- image-compressor - браузерная сжималка (использовать перед отправкой на сервер)
- Генерация превьюшек на лету с помощью AWS Lambda, golang, nodejs и nginx
phpmorphy
natural
- огромный набор инструментов для работы с натуральным языком (токенайзер, дистанции, префиксные деревья, стеммеры, классификаторы, сравнение звучаний, n-граммы, tf-idf, спеллчекер для английского, части речи)compromise
- под англ.язык и не толькоaz
wordpos
- части речи для английскогоleven
- самый быстрый левенштейн,string-similarity
- алгоритм лучше левенштейнаdiff
fuzzyset.js
/string_score
/fuse.js
/fuzzaldrin
/fuzzysort
- матчинг строкlunr-languages
petrovich
/name-case-lib-port
- склонение русских/украинских фиоstopword
- удаляет список бесполезные слова из текста (предлоги, союзы и т.п.) для многих языков, можно натренировать с помощьюstopword-trainer
.word2vec
/word2vec-native
/word2vec.js
wuzzy
- похожесть строк разными алгоритмамиconvert-layout
- смена раскладки переданной строки@google-cloud/speech
- разпознавание теста из аудио с помощью google cloud api (есть русский язык)franc
/guesslanguage
- определение языкаnode-summary
- выдёргивает основную мысль из текстаyaspeller
- спеллчекер через яндексовое api@google-cloud/language
- определение языка, тональности текста, сущностей, предложений, токенов, etc. Это обёртка для Google Cloud Api.- Классификация текста от facebook'а
- Поисковый движок (или типа того) от facebook'а
bottlejs
singular
intakejs
di.js
- от яндексойда + статья на хабреinversify
- мощный, для typescript'а
color
tinycolor2
tinygradient
chromatism
gpotter-gradient
- из заданного градиента выдёргивает цвет из любого места
rbush
,kdbush
,geokdbush
- браузерный spatial индекс из двухмерных точек для быстрого поиска вхождений в радиус и прямоугольную область (в т.ч. с учётом земной проекции).@turf/turf
- d3 для карт. быстрая гео-математика/геометрия (в т.ч. поиск вхождений, etc)proj4
- перевод из одной проекции в другуюwkx
- парсинг geojson (для браузера в том числе)simplify-js
- сглаживание polyline-кривойearcut
/libtess
- расчёт триангуляции для полигона и набора точекgeojsonvt
- нарезка geojson'а на векторные тайлы (для оптимизации рендеринга)geojson-utils
- line intersections, point in polygon, radius filtering, distance between two points, etcleaflet-pip
/point-in-polygon
leaflet-draw
- добавление мышкой линий/полигонов/кружочков на leaflet-картуpolylabel
/@mapbox/polylabel
/ mapsapi-polylabeler - нахождение оптимальной точки для расположения лейбла внутри полигона + статья от яндексаdelaunator
- быстрая триангуляцияbound-points
- вычисление bounds из набора точек
is-svg
d3
svg-intersections
- алгоритмы нахождения пересечений разных фигур- kevlindev - много разнообразной математики на js - пересечения фигур, геометрия фигур и прочее
chartist
d3
(d3-node
для node-environment)d3-glyphedge
greuler
ngraph
, в т.ч.ngraph.forcelayout
,ngraph.remove-overlaps
,ngraph.quadtreebh
и прочие от @anvakatoposort
graphlib
yandex-checkout
- статья
- swagger
apidoc
- slate
- pm2 (+
pmx
,pm2-pager
,pm2-logrotate
, как юзать socket.io на кластеризованном приложении) - now
- pod - маленький аналог
pm2
- rsynced - deploy-аналог pm2, но без гита
- shipit - gulp'ово/grunt'ово подобный деплойер
- dokku - heroku + docker
ui-плагины без jquery plainjs.com - подборка ванильных ui-виджетов и ванильных jquery-заменителей
asap
/next-tick
/setimmediate
- как только, так сразу. Кроссбраузерныйprocess.nextTick
simulant
- симуляция реальных браузерных событий- web-font-loading-recipes
webfontloader
- загрузка шрифтов с Google Fonts, Typekit, Fonts.com и Fontdeckfontfaceobserver
- promise-мониторилка загрузки веб-шрифтов, откуда бы они не загружались- font-style-matcher - онлайн сервис для подбора и настройки наиболее похожего fallback'чного шрифта
system-font-css
- альтернатива стеку системных шрифтов- fontplop - конвертёр web-шрифтов, но под мак
glyphhanger
- консольная тузла, которая пауком проходится по страничкам, смотрит какие глифы используются и сохраняет с ними файлы шрифтов (т.е. нужна для оптимизации используемых веб-шрифтов), от filament'а.nerd-fonts
- компиляция всех популярных opensource-шрифтов в одинfeather-icons
/vue-feather-icon
/material-design-icons
- svg-иконкиmousetrap
- работа с комбинациями hotkey'евtablesaw
- responsive-таблицы от filament'а (с кучей функционала)fg-select-css
- стили для кроссбраузерной кастомизации select'а от filament'а- Как правильно сбрасывать стили button'ов
@flowjs/flow.js
- загрузка файлов с примером бекенда на нодеfile-saver
,save-as
filepond
- upload'илка файловsmartcrop
copy-to-clipboard
vkey
parsleyjs
- валидатор формpretty-checkbox
- чекбоксы на scss'еdrop-anywhere
- для d'n'd загрузки файлов где угодно на страницеdropzone
noty
(обёртка для vue) - уведомлялкаcriticalcss
/critical
/penthouse
- critical csscritters-webpack-plugin
- плагин для webpack'а для встраивания critical cssjquery-mask-plugin
/inputmask
/cleave.js
/text-mask-all
/text-mask
/imask
- маски текстового вводаsimple-web-worker
webworker-promise
- promise-обёртка над webworker'ами (статья)webworkify-webpack
/workly
- практически прозрачная webworker'ификацияscalable
- зачётный object-fit на scale'ах и translate'ахfitty
- вписывает текст в родительский контейнерellipsed
- обрезка с многоточием многострочных текстовtrunc-text
trunc-html
shear.js
/truncate-html
- truncate текста, с учётом html-теговwenk
/balloon-css
/hint.css
popper.js
(vue-popperjs
) /tooltip.js
- заменаtether
уequalizecss
- bootstrap-like flex-сетка на sass'еjeet
- сетка на float'ахfloatthead
/vue-floatthead
/ minicss - плавающая шапка у таблиц (вроде самая нормальная из всех возможных), но на jqueryrader
- слайдер от 2gis'аgeoloc
- геолокация с фронта путём опроса свободных источников от 2gis'аappmetrics.js
- обертка над User Timing API, с возможностью отправки всего намерянного в GA.dom-serialize
- сериализация dom-нод в строкуcommon-tags
- годный html-шаблонизатор. как jsx, только правильныйzingtouch
/hammerjs
/slipjs
- touch-гестуры и событияblankshield
- безопасныйtarget="_blank"
bowser
/platform
/mobile-detect
- определитель девайса по юзерагентуevercookie
- repofingerprintjs2
history
instantclick
/turbolinks
- простой способ сделать классический сайт близким по скорости к spa /quicklink
- prefetch'ит ссылки во вьюпорте- JavaScript-autoComplete
mediaplayer
/video.js
/mediaelement
- лёгкий, расширяемый, интернациональный, доступный, кроссбраузерный, легконастраиваемый медиаплеер на ванильном jsanimejs
- норм такие анимашки@simonwep/selection-js
- нормальная выделялка объектов курсором (как в проводнике илиbrush
изd3
)jquery.payment
- форма для банковской карты repocard-info
- форма для банковской карты repocard
- форма для банковской карты repopayment
- форма для банковской карты repobanks-db
- определение банка по номеру картыblock-elements
- определяет, является ли тег блочным (по названию)trial-js
- предсказание клика юзера по наблюдениям за передвижениями мышиscrollbarwidth
scrollparent
- нахождение ближайшего родителя со скролломsimplebar
/baron
(от 2gis'а) /simplebar
(simplebar-vue
) - кроссбраузерный кастомный скроллscrollbooster
- drag-скроллер контентаsmooth-scrollbar
/smoothscroll-polyfill
(scroll-behavior: smooth;
)inobounce
- какой-то fix скролла на ios, связанный с-webkit-overflow-scrolling
waypoints
/isInViewport
/porthole
/jquery-viewport
/sticky-kit
/scrollmonitor
- попадание элемента во вьюпорт, наблюдение за скроллом, липкий сайдбар, hc-sticky и его форки /scrollama
- на IntersectionObserver'ахlozad
/ ещё один lazyload на IntersectionObserver. демка /lazysizes
- на IntersectionObserver, его советует Addy Osmanieqio
- Element css media-queriesimage-promise
- промайзнутыйnew Image
с кучей правильных проверокlightbox2
/photoswipe
(используется на vc.ru) - модалочка для картинокfocus
- нахождение центральной сущности на изображении для последующей фокусировки или кропа@nishanths/zoom.js
/medium-zoom
- zoom изображений как на medium'еfg-enlarge
- zoom изображения вслед за курсором внутри контейнера, как на алиflexslider
,vue-awesome-swiper
/swipejs
/owl.carousel
/responsive-carousel
/flickity
/swiper
/siema
- каруселькаflatpickr
- календарьpickr-widget
- color picker без привязки к фреймворкуhandorgel
- аккордеон без зависимостей@filamentgroup/tau
- 360° галереяquill
/medium-editor
/pell
/jodit
/trix
/ Squire /woofmark
/mavon-editor
(на чистом vue) - текстовый редакторauto-textarea
linkifyjs
- оборачивает текстовые ссылки в html-ссылкиsentinel-js
- отслеживает появление dom-элементов с заданным селекторомfg-loadcss
- асинхронная загрузка css от filament'а (пример использования)load-script
- асинхронная загрузка js@shopify/draggable
- мощная новая drag-n-drop'алкаnotifyjs
- браузерные нотификацииtabbable
- находит все dom-ноды, в которые возможна фокусировка tab'ом, внутри переданного контейнераfocus-trap
/react-focus-lock
- при переключении фокуса tab'ом, не даёт ему выйти за границы модалки, статья@ymatuhin/onerror
react-aria-modal
- правильная модалка, статья /micromodal
- тоже норм aria-модалка /a11y-dialog
- и ещё одна "доступная" модалка- break-on-access - полезная тулза, чтобы ставить брейкпоинты на любом объекте, который будет срабатывать в момент получения свойства этого объекта
devtools-detect
- кроссбраузерное определение открытого devtools'а- Красивые кнопочки
analytics.js
- аналитика от segment.io- обёртка над GA
- получение ip через WebRTC
- залогинен ли юзер в соц.сетях
- image-compressor - браузерная сжималка (использовать перед upload'ом на сервер) Много ui-виджетов Норм scss-тема для bootstrap'а
vuex-shared-mutations
- запускает мутации на всех открытых табахvuex-loading
vuex-cache
vuex-persistedstate
/vuex-persist
(этот лучше)vue-functional-data-merge
- Как правильно публиковать vue-компоненты
vuera
- React во Vue, Vue в React'е Описание настройки SSR
trafficcop
- ab-тестирование от mozilla'ы- segmentator - сегментирование траффика для ab от retail-rocket
- polyfill-service - смысл в том, чтобы использовать из этого сервиса только браузерное api. Для полифиллинга ECMAScript использовать
babel-polyfill
. - Здесь тоже много ссылок
- и здесь
dom4
store
- враппер над localStorage'м с fallback'ами на всё, что только возможно. можно сделать асинхронным для обёртки над редисом или типа того. В ноде хорошо работает в связке сnode-localstorage
/dom-storage
.localforage
- то же, что иstore
, только надindexeddb
,websql
,localstorage
. Асинхронный.dexie
- враппер над IndexedDBfg-loadcss
- полифил дляrel=preload
от FGcustom-event
sticky-state
/fixed-sticky
- второй от filament'а и используется на mail.ru'ответах (не поддерживается) /stickybits
- рабочий поддерживаемыйobject-fit-images
url-search-params
resize-observer-polyfill
matchmedia-polyfill
bounding-client-rect
mutation-observer
intersection-observer
(описание конфигурации)ric-shim
- requestIdleCallbackcurrent-script-polyfill
-document.currentScript
для ишаковshim-keyboard-event-key
-KeyboardEvent.key
для ишаков и Edgeelement-closest
-Element.closest()
для ишаковwindow-location-origin
-window.location.origin
для ишаковblob
on-full-screen
,is-full-screen
,request-full-screen
,exit-full-screen
/screenfull.js
smoothscroll-polyfill
events-polyfill
abort-controller
focus-visible
- зачем он нуженcss.escape
scrollingelement
buffer
history.js
- detect_flex - определение поддержки flexbox'ов (нормально работает в мобильниках)
- HTML5-Progress-polyfill
- Полифиллы, которые использовал github
- Список всех возможных WebApi
- конфиг с настроенным кешем от h5bp
- конфиг для http2/https, ipv6, load balancing'ом, нормальные заголовки для GeoIP
portainer
- лёгкое ui для docker'а
pencil
- repo d'n'd билдер дизайна и интерфейсов на электроне