Skip to content

Many low level node.js libs written in c/c++ or dependent on native modules. That's awesome, but in some trade off case we need pure javascript lib.

Notifications You must be signed in to change notification settings

heineiuo/awesome-nodejs-pure-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 

Repository files navigation

awesome-nodejs-pure-jsAwesome

Many low level node.js libs written in c/c++ or dependent on native modules. That's awesome, but in some trade off case we need pure javascript lib.

graphic (图形库)

image (图片处理)

  • jpeg-js A pure javascript JPEG encoder and decoder for node.js
  • upng.js Fast and advanced PNG (APNG) decoder and encoder
  • node-pnglib Pure Javascript lib for generate PNG, Node.js version for PNGlib.
  • jimp An image processing library written entirely in JavaScript
  • ⭐️ node-pureimage Pure JS implementation of an image drawing and encoding api, based on HTML Canvas
  • look-same Node.js library for comparing images
  • omggif JavaScript implementation of a GIF 89a encoder and decoder
  • gifuct-js Simple to use javascript .GIF decoder/parser

video (视频)

captcha (验证码)

  • trek captcha A Lightweight Pure JavaScript Captcha for Node.js. No C/C++, No ImageMagick, No Canvas.
  • svg captcha generate svg captcha in node

qr (二维码)

  • jsQR A pure javascript QR code reading library. This library takes in raw images and will locate, extract and parse any QR code found within
  • qr image Yet another QR code generator

font (字体)

  • typr process fonts in Javascript
  • opentype Read and write OpenType fonts using JavaScript
  • ttj.js JavaScript font library for Node.js
  • BDF.js Simple library for reading Adobe Glyph Bitmap Distribution font files

math

  • js-2dmath Fast 2d geometry math: Vector2, Rectangle, Circle, Matrix2x3 (2D transformation), Circle, BoundingBox, Line2, Segment2, Intersections, Distances, Transitions (animation/tween), Noise, Random numbers

compress (压缩)

  • pako high speed zlib port to javascript
  • jszip Create, read and edit .zip files with Javascript
  • tar tar for node
  • tar-stream tar-stream is a streaming tar parser and generator.
  • snappyjs JavaScript implementation of Google's Snappy compression library
  • gzipme A simple way to gzip your files

net protocol (网络库)

  • ws Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js
  • eshttp Portable pure JavaScript ES6/2015 HTTP library
  • dns Replacement dns module in pure javascript for node.js
  • ssh2 SSH2 client and server modules written in pure JavaScript for node.js
  • netcat
  • node-x11 X11 node.js network protocol client
  • http-parser This library parses HTTP protocol for requests and responses. It was created to replace http_parser.c since calling C++ function from JS is really slow in V8.

NAT

  • stun Session Traversal Utilities for NAT (STUN) server. Implements RFC5389 with partial support RFC5766, RFC5245, RFC5780.
  • stun STUN (Simple Traversal of UDP through NAT: RFC3489)
  • turn-js implements (most of) the features specified in RFC 5766

system (系统)

  • ps-list Get running processes. Works on macOS, Linux, and Windows.
  • font-list Current version supports macOS and Windows only, can not be used on Linux yet.

windows

  • node-winreg node module that provides access to the Windows Registry through the REG commandline tool

file format (文件格式)

  • xlsx
  • jsPDF
  • pdf.js
  • pdfmake
  • plist
  • Binary plist Binary plist parser and creator for node.js
  • sax-js A sax style parser for JS
  • xmldom A PURE JS W3C Standard based(XML DOM Level2 CORE) DOMParser and XMLSerializer.
  • file-type Detect the file type of a Buffer/Uint8Array
  • mime mime type for javascript
  • css CSS parser / stringifier for Node.js
  • gradle A quick & dirty Gradle build file to JavaScript object parser
  • .properties .properties parser/stringifier.
  • csv-parser Streaming csv parser inspired by binary-csv that aims to be faster than everyone else

data interchange format (数据交换格式)

  • bson BSON is short for Binary JSON and is the binary-encoded serialization of JSON-like documents
  • protobuf.js Protocol Buffers are a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more, originally designed at Google
  • msgpack5
  • msgpack-js
  • binary-extract Extract a value from a buffer of json without parsing the whole thing

text (文本处理)

  • jsdiff A javascript text differencing implementation.

pinyin (拼音)

  • pinyinjs 一个实现汉字与拼音互转的工具库

char encode/decode (编解码)

crypto (加密)

  • sha.js
  • jsonwebtoken JsonWebToken implementation for node.js
  • keypair Generate a RSA PEM key pair from pure JS
  • AES-js A pure JavaScript implementation of the AES block cipher and all common modes of operation for node.js
  • BLAKE2s BLAKE2s cryptographic hash function in JavaScript

i18n (国际化)

polyfill

  • date-time-format-timezone Surgically polyfills timezone support in Intl.DateTimeFormat API
  • Intl.js Compatibility implementation of the ECMAScript Internationalization API (ECMA-402) for JavaScript
  • node-opencc Translates between Traditional and Simplified Chinese in pure Node.js

data structures and algorithms

  • lru-cache A cache object that deletes the least-recently-used items.

data structures

algorithms

  • dsp.js Digital Signal Processing
  • fourier-transform Minimalistic and efficient FFT implementation
  • fibonacci-layout
  • crc Module for calculating Cyclic Redundancy Check (CRC)
  • buffer-crc32 A pure javascript CRC32 algorithm that plays nice with binary data
  • algorithms.js Traditional Computer Science algorithms and data structures implemented in JavaScript
  • uint64be Encode / decode big endian unsigned 64 bit integers
  • color-diff Implements the CIEDE2000 color difference algorithm, conversion between RGB and LAB color and mapping all colors in palette X to the closest color in palette Y based on the CIEDE2000 difference.

database

  • thalia pure js NOT in memory db
  • jinn-db A pure javascript, persistent key-value store for Node.js that supports out-of-core data access.
  • node-level A pure js key-value storage engine based on LSM, inspired by Leveldb.
  • node-lsm log structured merge tree in pure node.js
  • node-leveljs LevelDB in pure JavaScript, a very immature work in progress
  • hyperdb Distributed scalable database

Contribution welcome, please use issue to commit libs.

欢迎通过issue提交您推荐的库。

License

Licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.