An open API service indexing awesome lists of open source software.

awesome-nodejs

Delightful Node.js packages and resources. Crawl and sort daily by AwesomelsBot
https://github.com/thoqbk/awesome-nodejs

Last synced: 6 days ago
JSON representation

  • Filesystem

    • node-fs-extra - Node.js: extra methods for the fs object like copy(), remove(), mkdirs() - ★ 4963
    • chokidar - A neat wrapper around node.js fs.watch / fs.watchFile / fsevents. - ★ 4708
    • rimraf - A `rm -rf` util for nodejs - ★ 2829
    • node-graceful-fs - fs with incremental backoff on EMFILE - ★ 788
    • make-dir - Make a directory and its parents if needed - Think `mkdir -p` - ★ 323
    • del - Delete files and directories - ★ 876
    • globby - User-friendly glob matching - ★ 758
    • fs-jetpack - Better file system API for Node.js - ★ 431
    • filenamify - Convert a string to a valid safe filename - ★ 183
    • find-up - Find a file or directory by walking up parent directories - ★ 174
    • filehound - Flexible and fluent interface for searching the file system - ★ 131
    • load-json-file - Read and parse a JSON file - ★ 122
    • write-json-file - Stringify and write JSON to a file atomically - ★ 109
    • move-file - Move a file - Even works across devices - ★ 103
    • pkg-dir - Find the root directory of a Node.js project or npm package - ★ 78
    • istextorbinary - Determines if a buffer is comprised of text or binary - ★ 45
    • fs-write-stream-atomic - Like `fs.createWriteStream(...)`, but atomic. - ★ 43
    • lnfs - Safely force create symlinks - ★ 9
    • node-proper-lockfile - An inter-process and inter-machine lockfile utility that works on a local or network file system. - ★ 57
  • Forum

    • NodeBB - Node.js based forum software built for the modern web - ★ 9341
  • Functional programming

    • ramda - Practical functional Javascript - ★ 14475
    • lazy.js - Like Underscore, but lazier - ★ 5401
    • kefir - A Reactive Programming library for JavaScript - ★ 1489
    • mout - Modular JavaScript Utilities - ★ 1037
    • immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity. - ★ 25610
  • Hardware

    • johnny-five - JavaScript Robotics and IoT programming framework, developed at Bocoup. - ★ 9896
    • onoff - GPIO access and interrupt detection with Node.js - ★ 741
    • pigpio - Fast GPIO, PWM, servo control, state change notification and interrupt handling with Node.js on the Raspberry Pi - ★ 383
    • i2c-bus - I2C serial bus access with Node.js - ★ 148
    • GPS.js - A NMEA parser and GPS utility library - ★ 72
    • spi-device - SPI serial bus access with Node.js - ★ 42
    • GPS.js - A NMEA parser and GPS utility library - ★ 72
    • node-usb - Improved USB library for Node.js - ★ 727
    • node-serialport - Node.js package to access serial ports. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them! - ★ 3651
  • HTTP

    • request - 🏊🏾 Simplified HTTP request client. - ★ 21094
    • got - Simplified HTTP requests - ★ 4412
    • download - Download and extract files - ★ 768
    • wreck - HTTP Client Utilities - ★ 325
    • http-fake-backend - Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes. - ★ 171
    • gotql - GraphQL query utility for serverside apps - ★ 166
    • cacheable-request - Wrap native HTTP requests with RFC compliant cache support - ★ 152
    • gh-got - Convenience wrapper for `got` to interact with the GitHub API - ★ 125
    • flashheart - A fully-featured Node.js REST client built for ease-of-use and resilience - ★ 88
    • superagent - Ajax with less suck - (and node.js HTTP client to match) - ★ 13523
    • node-http-proxy - A full-featured http proxy for node.js - ★ 9453
    • node-fetch - A light-weight module that brings window.fetch to Node.js - ★ 3573
  • Humanize

    • pretty-error - See node.js errors with less clutter - ★ 1190
    • pretty-bytes - Convert bytes to a human readable string: 1337 → 1.34 kB - ★ 412
    • pretty-ms - Convert milliseconds to a human readable string: `1337000000` → `15d 11h 23m 20s` - ★ 347
    • node-readability - Scrape/Crawl article from any site automatically. Make any web page readable, no matter Chinese or English. - ★ 271
    • ms - Tiny milisecond conversion utility - ★ 1674
  • Image

    • sharp - High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP and TIFF images. Uses the libvips library. - ★ 9778
    • gm - GraphicsMagick for node - ★ 5338
    • lwip - Light Weight Image Processor for NodeJS - ★ 2157
    • pica - Resize image in browser with high quality and high speed - ★ 1419
    • probe-image-size - Get image size without full download. Supported image types: JPG, GIF, PNG, WebP, BMP, TIFF, SVG, PSD. - ★ 202
    • image-type - Detect the image type of a Buffer/Uint8Array - ★ 152
    • jimp - An image processing library written entirely in JavaScript for Node, with zero external or native dependencies. - ★ 7145
  • Job queues

    • kue - Kue is a priority job queue backed by redis, built for node.js. - ★ 8050
    • bull - Premium Queue package for handling jobs and messages in NodeJS. - ★ 3981
    • bee-queue - A simple, fast, robust job/task queue for Node.js, backed by Redis. - ★ 1152
    • rsmq - Redis Simple Message Queue - ★ 895
    • idoit - Redis-backed task queue engine with advanced task control and eventual consistency - ★ 30
    • node-resque - It's Resque... For node! Background jobs using redis. - ★ 617
  • Logging

    • winston - A logger for just about everything. - ★ 11879
    • pino - super fast, all natural json logger - ★ 3262
    • storyboard - End-to-end, hierarchical, real-time, colorful logs and stories - ★ 506
    • console-log-level - The most simple logger imaginable - ★ 30
    • signale - Hackable console logger - ★ 6756
  • Mad science

    • brain.js - Neural networks in JavaScript - ★ 6413
    • NodeOS - Lightweight operating system using Node.js as userspace - ★ 5701
    • peerflix - Streaming torrent client for node.js - ★ 4955
    • cytoscape.js - Graph theory (network) library for visualisation and analysis - ★ 4860
    • turf - A modular geospatial engine written in JavaScript - ★ 3987
    • isomorphic-git - A pure JavaScript implementation of git for node and browsers! - ★ 3447
    • js-git - A JavaScript implementation of Git. - ★ 3446
    • bitcoinjs-lib - A javascript Bitcoin library for node.js and browsers. - ★ 3125
    • js-ipfs - IPFS implementation in JavaScript - ★ 3099
    • bitcore - A full stack for bitcoin and blockchain-based applications - ★ 2942
    • peercast - torrent-stream + chromecast - ★ 401
    • webcat - Mad science p2p pipe across the web using webrtc that uses your Github private/public key for authentication and a signalhub for discovery - ★ 381
    • peerwiki - all of wikipedia on bittorrent - ★ 285
    • skale - High performance distributed data processing engine - ★ 305
    • zapsnap - Temporary peer to peer screenshot sharing from your browser. - ★ 176
    • js-xlsx - SheetJS Community Edition -- Spreadsheet Parser and Writer - ★ 13094
    • pdfkit - A JavaScript PDF generation library for Node and the browser - ★ 4336
  • Math

    • mathjs - An extensive math library for JavaScript and Node.js - ★ 7647
    • ndarray - Multidimensional arrays for JavaScript - ★ 805
    • algebra - means completeness and balancing, from the Arabic word الجبر - ★ 66
    • multimath - WebAssembly wrapper to simplify fast math coding - ★ 31
    • math-clamp - Clamp a number - ★ 4
  • Minifiers

    • imagemin - Tense, nervous, minifying images? - ★ 2584
    • minimize - Minimize HTML - ★ 139
    • UglifyJS2 - JavaScript parser / mangler / compressor / beautifier toolkit - ★ 9468
    • clean-css - Fast and efficient CSS optimizer for node.js and the Web - ★ 3063
    • minify - An ES6+ aware minifier based on the Babel toolchain (beta) - ★ 3613
  • Miscellaneous

    • nodejs-guidelines - Tips, tricks, and resources for working with Node.js, and the start of an ongoing conversation on how we can improve the Node.js experience on Microsoft platforms. - ★ 1970
    • execa - A better `child_process` - ★ 1636
    • clipboardy - Access the system clipboard (copy/paste) - ★ 514
    • awesome-cross-platform-nodejs - A curated list of awesome developer tools and libraries for writing and testing code that runs on Windows and Linux. - ★ 262
    • cheerio - Fast, flexible, and lean implementation of core jQuery designed specifically for the server. - ★ 17850
    • faker.js - generate massive amounts of realistic fake data in Node.js and the browser - ★ 16129
    • awesome-electron - Useful resources for creating apps with Electron - ★ 15934
    • dotenv - Loads environment variables from .env for nodejs projects. - ★ 7358
    • hypernova - A service for server-side rendering your JavaScript views - ★ 4757
    • nodegit - Native Node bindings to Git. - ★ 3742
    • node-opencv - OpenCV Bindings for node.js - ★ 3570
    • ssh2 - SSH2 client and server modules written in pure JavaScript for node.js - ★ 3238
    • awesome-npm - Awesome npm resources and tips - ★ 3086
    • node-semver - The semver parser for node (the one npm uses) - ★ 2474
    • ow - Function argument validation for humans - ★ 2464
    • node-webworker-threads - Lightweight Web Worker API implementation with native threads - ★ 1903
    • file-type - Detect the file type of a Buffer/Uint8Array - ★ 769
    • emittery - Simple and modern async event emitter - ★ 745
    • is - Type check values: `is.string(' ') //=> true` - ★ 697
    • hasha - Hashing made simple. Get the hash of a buffer/string/stream/file. - ★ 635
    • node-pre-gyp - Node.js tool for easy binary deployment of C++ addons - ★ 580
    • generator-nm - Scaffold out a node module - ★ 570
    • bottleneck - Job scheduler and rate limiter, supports Clustering - ★ 517
    • node-module-boilerplate - Boilerplate to kickstart creating a node module - ★ 424
    • dot-prop - Get, set, or delete a property from a nested object using a dot path - ★ 337
    • import-lazy - Import a module lazily - ★ 151
    • import-fresh - Import a module while bypassing the cache - ★ 146
    • os-locale - Get the system locale - ★ 134
    • onetime - Ensure a function is only called once - ★ 79
    • strip-bom - Strip UTF-8 byte order mark (BOM) from a string - ★ 68
    • resolve-from - Resolve the path of a module like require.resolve() but from a given path - ★ 66
    • remote-git-tags - Get tags from a remote git repo. Using only JS. No git binary required. - ★ 32
    • adit - SSH tunnels – in any way you want it - ★ 21
    • env-dot-prop - Get, set, or delete nested properties of process.env using a dot path - ★ 11
    • json-strictify - Safely serialize a value to JSON without unintended loss of data or going into an infinite loop due to circular references. - ★ 3
    • mem - Memoize functions - an optimization technique used to speed up consecutive function calls by caching the result of calls with identical input - ★ 404
    • electron - Build cross-platform desktop apps with JavaScript, HTML, and CSS - ★ 66551
    • simplecrawler - Flexible event driven crawler for node. - ★ 1809
    • module-requests - Need a JavaScript module or looking for ideas? Welcome - ★ 422
    • opn - A better node-open. Opens stuff like websites, files, executables. Cross-platform. - ★ 1300
    • jsdom - A JavaScript implementation of the WHATWG DOM and HTML standards, for use with node.js - ★ 11069
  • Natural language processing

    • natural - general natural language facilities for node - ★ 8215
    • franc - Natural language detection - ★ 2823
    • leven - Measure the difference between two strings with the fastest JS implementation of the Levenshtein distance algorithm - ★ 391
    • retext - Natural language processor powered by plugins based on (and , ) - ★ 1625
  • Network

    • get-port - Get an available port - ★ 281
    • netcat - Netcat client and server modules written in pure Javascript for Node.js. - ★ 217
    • getmac - Get the mac address of the current machine you are on via Node.js - ★ 160
    • ipify - Get your public IP address - ★ 148
    • node-dhcp - A DHCP server and client written in pure JavaScript - ★ 129
  • Node.js management

    • nvm-windows - A node.js version management utility for Windows. Ironically written in Go. - ★ 7309
    • n - Node version management - ★ 10211
    • nave - ★ 1160
    • nodeenv - Virtual environment for Node.js & integrator with virtualenv - ★ 955
  • Number

    • round-to - Round a number to a specific number of decimal places: 1.234 → 1.2 - ★ 91
    • unique-random - Generate random numbers that are consecutively unique - ★ 61
    • random-int - Generate a random integer - ★ 40
    • random-float - Generate a random float - ★ 18
  • Parsing

    • postcss - Transforming styles with JS plugins - ★ 19653
    • markdown-it - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed - ★ 6295
    • URI.js - Javascript URL mutation library - ★ 5513
    • node-xml2js - XML to JavaScript object converter. - ★ 3436
    • js-yaml - JavaScript YAML parser and dumper. Very fast. - ★ 3372
    • jison - Bison in JavaScript. - ★ 3203
    • pegjs - PEG.js: Parser generator for JavaScript - ★ 3007
    • parse5 - HTML parsing/serialization toolset for Node.js. WHATWG HTML Living Standard (aka HTML5)-compliant. - ★ 1909
    • JSONStream - rawStream.pipe(JSONStream.parse()).pipe(streamOfObjects) - ★ 1592
    • csv-parser - Streaming csv parser inspired by binary-csv that aims to be faster than everyone else - ★ 566
    • strip-json-comments - Strip comments from JSON. Lets you use comments in your JSON files! - ★ 381
    • ref - Turn Buffer instances into "pointers" - ★ 299
    • fast-xml-parser - Validate XML, Parse XML to JS/JSON and vise versa, or parse XML to Nimn rapidly without C/C++ based libraries and no callback - ★ 295
    • xlsx-populate - Excel XLSX parser/generator written in JavaScript with Node.js and browser support, jQuery/d3-style method chaining, encryption, and a focus on keeping existing workbook features and styles in tact. - ★ 275
    • binary-extract - Extract a value from a buffer of json without parsing the whole thing - ★ 139
    • parse-json - Parse JSON with more helpful errors - ★ 131
    • stylecow - Modern CSS to all browsers - ★ 128
    • strip-css-comments - Strip comments from CSS - ★ 83
    • neat-csv - Fast CSV parser - ★ 75
    • x-ray - The next web scraper. See through the <html> noise. - ★ 4727
    • nearley - Simple, fast, powerful parser toolkit for JavaScript. - ★ 1987
    • remark - Markdown processor powered by plugins based on (and , ) - ★ 1805
    • chevrotain - Parser Building Toolkit for JavaScript - ★ 883
    • google-libphonenumber - The up-to-date and reliable Google's libphonenumber package for node.js. - ★ 574
  • Process management

    • node-windows - Windows support for Node.JS scripts (daemons, eventlog, UAC, etc). - ★ 1577
    • pm2 - Node.js Production Process Manager with a built-in Load Balancer. - ★ 27006
    • nodemon - Monitor for any changes in your node.js application and automatically restart the server - perfect for development - ★ 16462
    • passenger - A fast and robust web server and application server for Ruby, Python and Node.js - ★ 4234
    • node-supervisor - ★ 3490
    • node-mac - Node utilities for Mac - ★ 428
    • node-linux - Create native background daemons on Linux systems. - ★ 345
  • Real-time

    • socket.io - Realtime application framework (Node.JS server) - ★ 44232
    • socketcluster - Highly scalable realtime framework - ★ 4977
    • faye - Simple pub/sub messaging for the web - ★ 4152
    • primus - Primus, the creator god of the transformers & an abstraction layer for real-time to prevent module lock-in. - ★ 3728
    • MQTT.js - The MQTT client for Node.js and the browser - ★ 3722
    • deepstream.io-client-js - The Browser / Node.js Client for deepstream.io - ★ 223
    • rpc-websockets - JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript - ★ 131
    • kalm.js - The socket manager - ★ 63
    • uWebSockets - Tiny WebSockets - ★ 9753
    • aedes - Barebone MQTT broker that can run on any stream server, the node way - ★ 336
  • Security

    • themis - Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across ten platforms. - ★ 614
    • upash - Unified API for password hashing algorithms - ★ 386
  • Serialization

    • node-snappy - Nodejs bindings to Google's Snappy compression library - ★ 375
    • compactr.js - Schema based serialization made easy - ★ 71
    • protobuf.js - Protocol Buffers for JavaScript (& TypeScript). - ★ 4989