{"id":62628,"url":"https://github.com/heineiuo/awesome-nodejs-pure-js","name":"awesome-nodejs-pure-js","description":"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.","projects_count":96,"last_synced_at":"2026-10-20T04:00:28.857Z","repository":{"id":66092536,"uuid":"116893971","full_name":"heineiuo/awesome-nodejs-pure-js","owner":"heineiuo","description":"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.","archived":false,"fork":false,"pushed_at":"2020-08-30T03:32:41.000Z","size":58,"stargazers_count":22,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-09-10T18:59:06.384Z","etag":null,"topics":["algorithm","algorithms","awesome","collection","compress","crypto","data-structures","engine","file-format","font","graphics","i18n","javascript","javascript-lib","library","low-level","low-level-javascript","low-level-programming","nodejs","pure-javascript"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heineiuo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-10T01:54:44.000Z","updated_at":"2026-05-12T03:33:20.000Z","dependencies_parsed_at":"2023-03-23T08:48:37.945Z","dependency_job_id":null,"html_url":"https://github.com/heineiuo/awesome-nodejs-pure-js","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/heineiuo/awesome-nodejs-pure-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heineiuo%2Fawesome-nodejs-pure-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heineiuo%2Fawesome-nodejs-pure-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heineiuo%2Fawesome-nodejs-pure-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heineiuo%2Fawesome-nodejs-pure-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heineiuo","download_url":"https://codeload.github.com/heineiuo/awesome-nodejs-pure-js/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heineiuo%2Fawesome-nodejs-pure-js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":342085742,"owners_count":37879827,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-09-30T02:00:06.001Z","response_time":133,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-07-02T00:00:23.288Z","updated_at":"2026-10-20T04:00:28.858Z","primary_language":"JavaScript","list_of_lists":false,"displayable":true,"categories":["system (系统)","net protocol (网络库)","graphic (图形库)","file format (文件格式)","database","data structures and algorithms","crypto (加密)","text （文本处理）","compress (压缩)","i18n (国际化)"],"sub_categories":[],"readme":"# awesome-nodejs-pure-js[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\nMany 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.\n\n\n## graphic (图形库)\n#### image (图片处理)\n* [jpeg-js](https://github.com/eugeneware/jpeg-js) A pure javascript JPEG encoder and decoder for node.js\n* [upng.js](https://github.com/photopea/UPNG.js) Fast and advanced PNG (APNG) decoder and encoder\n* [node-pnglib](https://github.com/Lellansin/node-pnglib) Pure Javascript lib for generate PNG, Node.js version for PNGlib.\n* [jimp](https://github.com/oliver-moran/jimp) An image processing library written entirely in JavaScript\n* ⭐️ [node-pureimage](https://github.com/joshmarinacci/node-pureimage) Pure JS implementation of an image drawing and encoding api, based on HTML Canvas\n* [look-same](https://github.com/gemini-testing/looks-same) Node.js library for comparing images\n* [omggif](https://github.com/deanm/omggif) JavaScript implementation of a GIF 89a encoder and decoder\n* [gifuct-js](https://github.com/matt-way/gifuct-js) Simple to use javascript .GIF decoder/parser\n\n#### video (视频)\n* [node-mpeg2ts-parser](https://github.com/t6tn4k/node-mpeg2ts-parser) MPEG-2 TS parser in Node.js\n* [whammy.js](https://github.com/antimatter15/whammy/blob/master/whammy.js) A real time javascript webm encoder based on a canvas hack\n* [mp4-stream](https://github.com/mafintosh/mp4-stream) Streaming mp4 encoder and decoder\n* [mp4-box-encoding](https://github.com/jhiesey/mp4-box-encoding) mp4 header reading and writing using the abstract-encoding interface\n\n#### captcha (验证码)\n* [trek captcha](https://github.com/trekjs/captcha) A Lightweight Pure JavaScript Captcha for Node.js. No C/C++, No ImageMagick, No Canvas.\n* [svg captcha](https://github.com/lemonce/svg-captcha) generate svg captcha in node\n\n#### qr (二维码)\n* [jsQR](https://github.com/cozmo/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\n* [qr image](https://github.com/alexeyten/qr-image) Yet another QR code generator\n\n#### font (字体)\n* ~~[typr](https://github.com/photopea/Typr.js) process fonts in Javascript~~\n* [opentype](https://github.com/nodebox/opentype.js) Read and write OpenType fonts using JavaScript\n* [ttj.js](https://github.com/ynakajima/ttf.js) JavaScript font library for Node.js\n* [BDF.js](https://github.com/victorporof/BDF.js) Simple library for reading Adobe Glyph Bitmap Distribution font files\n\n#### math\n* [js-2dmath](https://github.com/llafuente/js-2dmath) Fast 2d geometry math: Vector2, Rectangle, Circle, Matrix2x3 (2D transformation), Circle, BoundingBox, Line2, Segment2, Intersections, Distances, Transitions (animation/tween), Noise, Random numbers\n\n## compress (压缩)\n* [pako](https://github.com/nodeca/pako) high speed zlib port to javascript\n* [jszip](https://github.com/Stuk/jszip) Create, read and edit .zip files with Javascript\n* [tar](https://github.com/npm/node-tar) tar for node\n* [tar-stream](https://github.com/mafintosh/tar-stream)  tar-stream is a streaming tar parser and generator.\n* [snappyjs](https://github.com/zhipeng-jia/snappyjs) JavaScript implementation of Google's Snappy compression library\n* [gzipme](https://github.com/caio-ribeiro-pereira/gzipme) A simple way to gzip your files\n\n## net protocol (网络库)\n* [ws](https://github.com/websockets/ws) Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js\n* [eshttp](https://github.com/iefserge/eshttp)  Portable pure JavaScript ES6/2015 HTTP library\n* [dns](https://github.com/tjfontaine/node-dns) Replacement dns module in pure javascript for node.js\n* [ssh2](https://github.com/mscdex/ssh2) SSH2 client and server modules written in pure JavaScript for node.js\n* [netcat](https://github.com/roccomuso/netcat)\n* [node-x11](https://github.com/sidorares/node-x11)  X11 node.js network protocol client\n* [http-parser](https://github.com/creationix/http-parser-js) 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.\n\n#### NAT\n* [stun](https://github.com/nodertc/stun) Session Traversal Utilities for NAT (STUN) server. Implements RFC5389 with partial support RFC5766, RFC5245, RFC5780.\n* [stun](https://github.com/enobufs/stun) STUN (Simple Traversal of UDP through NAT: RFC3489)\n* [turn-js](https://github.com/nicojanssens/turn-js) implements (most of) the features specified in RFC 5766\n\n## system (系统)\n\n* [ps-list](https://github.com/sindresorhus/ps-list) Get running processes. Works on macOS, Linux, and Windows.\n* ~~[font-list](https://github.com/oldj/node-font-list) Current version supports macOS and Windows only, can not be used on Linux yet.~~\n\n#### windows\n* [node-winreg](https://github.com/fresc81/node-winreg) node module that provides access to the Windows Registry through the REG commandline tool\n  \n## file format (文件格式)\n* [xlsx](https://github.com/SheetJS/js-xlsx)\n* [jsPDF](https://github.com/MrRio/jsPDF)\n* [pdf.js](https://github.com/mozilla/pdf.js)\n* [pdfmake](https://github.com/bpampuch/pdfmake)\n* [plist](https://github.com/TooTallNate/plist.js)\n* [Binary plist](https://github.com/ladinu/bplist) Binary plist parser and creator for node.js\n* [sax-js](https://github.com/isaacs/sax-js) A sax style parser for JS\n* [xmldom](https://github.com/jindw/xmldom) A PURE JS W3C Standard based(XML DOM Level2 CORE) DOMParser and XMLSerializer.\n* [file-type](https://github.com/sindresorhus/file-type) Detect the file type of a Buffer/Uint8Array \n* [mime](https://github.com/broofa/node-mime) mime type for javascript\n* [css](https://github.com/reworkcss/css) CSS parser / stringifier for Node.js\n* [gradle](https://github.com/ninetwozero/gradle-to-js) A quick \u0026 dirty Gradle build file to JavaScript object parser\n* [.properties](https://github.com/gagle/node-properties) .properties parser/stringifier.\n* [csv-parser](https://github.com/mafintosh/csv-parser) Streaming csv parser inspired by binary-csv that aims to be faster than everyone else\n\n#### data interchange format (数据交换格式)\n* [bson](https://github.com/mongodb/js-bson) BSON is short for Binary JSON and is the binary-encoded serialization of JSON-like documents\n* [protobuf.js](https://github.com/dcodeIO/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\n* [msgpack5](https://github.com/mcollina/msgpack5) \n* [msgpack-js](https://github.com/creationix/msgpack-js)\n* [binary-extract](https://github.com/juliangruber/binary-extract) Extract a value from a buffer of json without parsing the whole thing\n\n## text （文本处理）\n* [jsdiff](https://github.com/kpdecker/jsdiff) A javascript text differencing implementation.\n\n#### pinyin (拼音)\n* [pinyinjs](https://github.com/sxei/pinyinjs) 一个实现汉字与拼音互转的工具库\n\n#### char encode/decode (编解码)\n* [iconv-lite](https://github.com/ashtuchkin/iconv-lite) Convert character encodings in pure javascript.\n* [base64](https://github.com/beatgammit/base64-js)\n  \n## crypto (加密)\n* [sha.js](https://github.com/crypto-browserify/sha.js)\n* [jsonwebtoken](https://github.com/auth0/node-jsonwebtoken) JsonWebToken implementation for node.js\n* [keypair](https://github.com/juliangruber/keypair) Generate a RSA PEM key pair from pure JS\n* [AES-js](https://github.com/ricmoo/aes-js) A pure JavaScript implementation of the AES block cipher and all common modes of operation for node.js\n* [BLAKE2s](https://github.com/dchest/blake2s-js) BLAKE2s cryptographic hash function in JavaScript\n\n\n## i18n (国际化)\n\n#### polyfill\n* [date-time-format-timezone](https://github.com/yahoo/date-time-format-timezone) Surgically polyfills timezone support in Intl.DateTimeFormat API\n* [Intl.js](https://github.com/andyearnshaw/Intl.js) Compatibility implementation of the ECMAScript Internationalization API (ECMA-402) for JavaScript\n* [node-opencc](https://github.com/compulim/node-opencc) Translates between Traditional and Simplified Chinese in pure Node.js\n\n## data structures and algorithms  \n* [lru-cache](https://github.com/isaacs/node-lru-cache) A cache object that deletes the least-recently-used items.\n\n#### data structures\n* [long.js](https://github.com/dcodeIO/long.js) A Long class for representing a 64-bit two's-complement integer value.\n* [LinkList](https://github.com/isaacs/yallist)\n* [node-jumplist(skiplist)](https://github.com/superisaac/node-jumplist)\n* [js-tree](https://github.com/wangzuo/js-tree)\n* [Buckets-JS(collections)](https://github.com/mauriciosantos/Buckets-JS)\n* [Data-Structures(collections)](https://github.com/Bishop92/JavaScript-Data-Structures) A library for data structure in JavaScript\n* [lago(collections)](https://github.com/yangshun/lago) 🌴 Data Structures and Algorithms library for JavaScript.\n* [dsjslib(collections)](https://github.com/monmohan/dsjslib) A library implementing several standard data structures and utilities\n* [uint32](https://github.com/fxa/uint32.js) An javascript implementation of bitwise uint32 operations\n* [tiny-queue](https://github.com/nolanlawson/tiny-queue) A simple FIFO queue implementation as a linked list. The main benefit is to avoid doing shift() on an array, which may be slow.\n\n#### algorithms\n* [dsp.js](https://github.com/corbanbrook/dsp.js) Digital Signal Processing \n* [fourier-transform](https://github.com/scijs/fourier-transform) Minimalistic and efficient FFT implementation\n* [fibonacci-layout](https://github.com/heineiuo/fibonacci-layout)\n* [crc](https://github.com/alexgorbatchev/node-crc) Module for calculating Cyclic Redundancy Check (CRC)\n* [buffer-crc32](https://github.com/brianloveswords/buffer-crc32) A pure javascript CRC32 algorithm that plays nice with binary data\n* [algorithms.js](https://github.com/felipernb/algorithms.js) Traditional Computer Science algorithms and data structures implemented in JavaScript\n* [uint64be](https://github.com/mafintosh/uint64be) Encode / decode big endian unsigned 64 bit integers\n* [color-diff](https://github.com/markusn/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.\n\n## database\n\n* [thalia](https://github.com/calvinmetcalf/thalia) pure js NOT in memory db\n* [jinn-db](https://github.com/lasalvavida/jinn-db) A pure javascript, persistent key-value store for Node.js that supports out-of-core data access.\n* [node-level](https://github.com/heineiuo/node-level) A pure js key-value storage engine based on LSM, inspired by Leveldb.\n* [node-lsm](https://github.com/gutobortolozzo/node-lsm) log structured merge tree in pure node.js\n* [node-leveljs](https://github.com/lemonhall/node-leveljs) LevelDB in pure JavaScript, a very immature work in progress\n* [hyperdb](https://github.com/mafintosh/hyperdb) Distributed scalable database\n\n---\n\nContribution welcome, please use issue to commit libs.\n\n欢迎通过issue提交您推荐的库。\n\n## License\n\nLicensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003eCreative Commons Attribution-ShareAlike 4.0 International License\u003c/a\u003e.\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/heineiuo%2Fawesome-nodejs-pure-js/projects"}