JavaScript Awesome
约 17 分钟阅读
标签:资源精选
- novnc/noVNCGitHubnovnc/noVNCnovnc/noVNC · WebSocket 协议 · https://novnc.com/noVNC/vnc.html?host=localhost&port=5901&path=&encrypt=0 · https://novnc.com/noVNC/vnc.html?host=localhost&port=8080&path=vnc/&encr...笔记:noVNC
- felixrieseberg/macintosh.jsGitHubfelixrieseberg/macintosh.js
- RobinCsl/awesome-js-tooling-not-in-jsGitHubRobinCsl/awesome-js-tooling-not-in-js
- sorrycc/awesome-javascriptGitHubsorrycc/awesome-javascript
- CLI / Table
- console-table-printer/console-table-printerGitHubconsole-table-printer/console-table-printer
- Node.js 控制台表格打印工具。
- console-table-printer/console-table-printerGitHubconsole-table-printer/console-table-printer
Library
- Event
- DOM EventTarget - Bus
- DOM MessageChannel - 1-1、WebWorker
- DOM BroadcastChannel - origin 纬度 - 多窗口
- DOM Window.postMessage - 跨 origin、多窗口、iframe
- EventEmitter
- npm
- sindresorhus/emitteryGitHubsindresorhus/emittery
- 支持 async, generator
- 🌟 推荐 - 更加现代
- primus/eventemitter3GitHubprimus/eventemitter3
- 移除 Domain 支持
- Morglod/tseepGitHubMorglod/tseep
eventemitter2GitHubEventEmitter2/EventEmitter2- wildcard/namespace, ttl/once/many, async listener/setImmediate
- emitAsync
- 18.2kB, 5.6kB
- developit/mittGitHubdevelopit/mitt
- ts, 200byte
- 建议直接拷到项目使用
- broadcast-channelGitHubpubkey/broadcast-channel
- 基于 BroadcastChannel+IndexedD+LocalStorage
- NodeJS 使用 Sockets
- 支持 Leader 选举
- 20kB/6kB
- browserify/eventsGitHubbrowserify/events
- EventEmitter 同
node:events
- EventEmitter 同
- tiny-emitter
tunnckoCoreLabs/dushGitHubtunnckoCoreLabs/dush- emittery vs eventemitter2 vs eventemitter3 vs events vs mitt vs tiny-emitter
- DOM
- google/incremental-domGitHubgoogle/incremental-dom
- in-place DOM diffing
- manipulation
- dom7 - morden jquery
- jquery
- parser
- zeed-dom - Parser
- cheerioGitHubcheeriojs/cheerio - jQuery like API
- fb55/htmlparser2GitHubfb55/htmlparser2
- npm
- fb55/domhandlerGitHubfb55/domhandler
- documents -> DOM
- cheeriojs/dom-serializerGitHubcheeriojs/dom-serializer
- domhandler 序列化 DOM
- fb55/css-selectGitHubfb55/css-select
- CSS selector
- fb55/domutilsGitHubfb55/domutils
- DOM utils
- parse5
- jsdom
- santinizer
- env
- jsdomGitHubjsdom/jsdomjsdom/jsdom · MIT, JS · 参考 · 未实现的功能 https://github.com/jsdom/jsdom/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc · navigation笔记:jsdom
- linkedomGitHubWebReflection/linkedom
- jsdonGitHubWebReflection/jsdon
- dom.toJSON()
- jsdonGitHubWebReflection/jsdon
- zeed-domGitHubholtwick/zeed-dom
- focus-trap/focus-trapGitHubfocus-trap/focus-trap
- google/incremental-domGitHubgoogle/incremental-dom
- Communication/Network/Websocket/proxy
- WebSockets
- 浏览器 Chrome 17+, Safari 7+, Android 4.4+ - 2013+
- NodeJS 21+
node --experimental-websocket
- websockets/wsGitHubwebsockets/wswebsockets/ws · MIT, JS笔记:ws
- MIT, JS
- JS 实现
- binary 加速包 bufferutil, utf-8-validate
- uWebSockets.jsGitHubuNetworking/uWebSockets.js
- 基于 uWebSocketsGitHubuNetworking/uWebSockets C++ 库
- 性能好
- 针对 Linux 优化
- theturtle32/WebSocket-NodeGitHubtheturtle32/WebSocket-Node
- Apache-2.0, JS
- JS 实现
- npm
- faye/faye-websocket-nodeGitHubfaye/faye-websocket-node
- sockjs
- 支持回滚为其他协议
- primus/primusGitHubprimus/primus
- SocketCluster/socketclusterGitHubSocketCluster/socketcluster
- realtime pub/sub and RPC framework
- socketio
- eventsource
- WebRTC
- WebTransport
- OptimalBits/redbirdGitHubOptimalBits/redbird
- reverse proxy for node
- PartySocketGitHub Filecloudflare/partykit/packages/partysocket
- fork reconnecting-websocket
- 支持自动重连
- 兼容 WebSocket API
- 支持多平台
- WebSockets
- io/fs/storage
- good-lly/s3miniGitHubgood-lly/s3mini
- 16kB, 6kB
- 不支持高级功能
- 单纯作为 s3 访问足够
- bradenmacdonald/s3-lite-clientGitHubbradenmacdonald/s3-lite-client
- 从 minio 的修改而来
- good-lly/lowstorageGitHubgood-lly/lowstorage
- MIT, JS, TS
- object pseudo-database for S3-compatible storages using JSON or Msgpack
- minio
- 460kB, 120kB
- sentienhq/ultralight-s3GitHubsentienhq/ultralight-s3
- lightweight S3 client
- npm
- node
- willfarrell/datastreamGitHubwillfarrell/datastream
- Commonly used stream patterns for Web Streams API and NodeJS Stream.
- good-lly/s3miniGitHubgood-lly/s3mini
- standard/dataset/数据集
- jshttp/mime-typesGitHubjshttp/mime-types
- npm
- npm
- minified 160kB, gzipped 20kB
- cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json
- 200KB
- jshttp/mime-typesGitHubjshttp/mime-types
- WebWorker
- GoogleChromeLabs/comlinkGitHubGoogleChromeLabs/comlink
- vitejs.dev/guide/features.html
- vitejs.dev/config/worker-options.html
const worker = new Worker(new URL('./worker.ts', import.meta.url, { type: 'module', }))import MyWorker from './worker?worker'import MyWorker from './worker?worker&inline'import MyWorker from './worker?worker&url'const worker = new MyWorker()
- IoC/Container/DI
- nestjs笔记NestJSnestjs/nest · 设计来自 Angular + SpringFramework · http-errors · 核心概念 · Module · - · Controller · request -> response · - · , - , ,打开:/notes/web/framework/nestjs
- 整体设计类似 Spring/Angular
- ⚠️ 只支持 NodeJS
- jeffijoe/awilix笔记awilixAwilix is just a container · 基于 name 进行 resolve · 也就是说 context 不是一个黑盒,而是完全需要感知字段名字的,类似于一个大的 context 对象 · 不依赖 decorator - 对环境依赖度低,使用实现简单打开:/notes/web/script/lib/awilix
- npm
- 9kB/3kB
- 0 依赖
- Proxy+Reflect - Chrome >= 49, Safari >= 10
- 支持代理模式 - 通过访问的字段名字进行 resolve
- 不支持异步
- 支持传统 Token 模式
- 支持浏览器
- 强类型 Container
- 不支持 异步,功能相对比较欠缺
- inversify/InversifyJSGitHubinversify/InversifyJSinversify/InversifyJS · MIT, TS · 50kB/11kB · Reflect.getMetadata, Map, Promise, Proxy · Decorator · - · - · - · - · 避免 AMBIGUOUSMATCH笔记:inversify
- npm
- 51kB/11kB
- 功能非常全的 IoC - 使用起来有一点复杂
- ⚠️ 不活跃
- typestack/typediGitHubtypestack/typedi
- typedi
- 220kB
- 功能相对简单,做 DI 足够
- ⚠️ 非常不活跃
- Microsoft/tsyringeGitHubMicrosoft/tsyringe
- ⚠️ 非常不活跃
- @abraham/reflectionGitHubabraham/reflection
- ~3k - 替代 reflect-metadata ~ 50k
- async-dependency-graphGitHubchriswoodle/async-dependency-graph
- dependency graph that can traverse asyncronous nodes
- 5kB, 1.5kB
- fastify/avvioGitHubfastify/avvio
- 20kB, 7kB
- Asynchronous bootstrapping of Node applications
- nestjs笔记NestJSnestjs/nest · 设计来自 Angular + SpringFramework · http-errors · 核心概念 · Module · - · Controller · request -> response · - · , - , ,打开:/notes/web/framework/nestjs
- deep compare
- epoberezkin/fast-deep-equalGitHubepoberezkin/fast-deep-equal
- FormidableLabs/react-fast-compareGitHubFormidableLabs/react-fast-compare
- 支持 react 元素
- lukeed/dequalGitHublukeed/dequal
- 304B to 489B
- lodash.isEqual
- object-hash
- hash-sum
- Date & Time
- date-fns
- 多错误的容忍度低
- 可 tree-shaking
- format 约 20kB/6kB
- format 格式为标准的 unicode CLDR
- dayjs
- Fast 2kB alternative to Moment.js
- 接口友好
- 不可 tree-shaking
- format 格式 follow Moment.js - 非标准
- Immutable
- plugins
- duration
moment- 不再维护
- d3-time-format
- chrono-nodeGitHubwanasit/chrono
- natural language date parser
- moment/luxonGitHubmoment/luxon
- 70kB, 21kB
- date-fns
- format/intl/unit - number, time, money
- SheetJS/printjGitHubSheetJS/printj
- Apache-2.0, JS
- sprintf for JS
- numbroGitHubBenjaminVanRyseghem/numbro
- MIT, JS
- 基于 numeral
- EvanHahn/HumanizeDuration.jsGitHubEvanHahn/HumanizeDuration.js
- adamwdraper/Numeral-jsGitHubadamwdraper/Numeral-js
- MIT, JS
- npm
- 不再维护
- ben-ng/convert-unitsGitHubben-ng/convert-units
- 不再维护
- ECMA-402GitHubtc39/ecma402
- Intl.NumberFormat
- SheetJS/printjGitHubSheetJS/printj
- money
- dinero.jsGitHubdinerojs/dinero.js
- create, calculate, format money
- currency.jsGitHubscurker/currency.js
- accounting.jsGitHubopenexchangerates/accounting.js
- dinero.jsGitHubdinerojs/dinero.js
- flip effect
- react-flip-numbersGitHubbluebill1049/react-flip-numbers
- react-flipcardGitHubmzabriskie/react-flipcard
- [number-flip] (gaoryrt/flipGitHubgaoryrt/flip)
- objectivehtml/FlipClockGitHubobjectivehtml/FlipClock
- 不再维护
- ramdaGitHubramda/ramda
- fp-tsGitHubgcanti/fp-ts
- io-ts
- reactive
- rxjs
- core
- toss/es-toolkitGitHubtoss/es-toolkittoss/es-toolkit · MIT, TS · npm:es-toolkit · 替代 lodash · 性能更好 · ⚠️ 部分功能还在 compact · 保留和 lodash 一样的 API · 性能没做优化笔记:es-toolkit
- lodash alternative
- lodash
- angus-c/justGitHubangus-c/just
- core-js
- underscore
- stdlib-js/stdlibGitHubstdlib-js/stdlib
- toss/es-toolkitGitHubtoss/es-toolkittoss/es-toolkit · MIT, TS · npm:es-toolkit · 替代 lodash · 性能更好 · ⚠️ 部分功能还在 compact · 保留和 lodash 一样的 API · 性能没做优化笔记:es-toolkit
- Error
- verror
- @netflix/nerror
- voxpelli/pony-causeGitHubvoxpelli/pony-cause
- Error Cause tc39/proposal-error-causeGitHubtc39/proposal-error-cause
- Chrome 93+, Safari 15+, Firefox 91+, Node 16+
- clone
- structuredClone - Chrome 98
- lukeed/klonaGitHublukeed/klona
- regex
- pillarjs/path-to-regexpGitHubpillarjs/path-to-regexppillarjs/path-to-regexp · 8.x 版本不支持自定义 pattern · 将字符串 template 解析为 TokenData · 将 TokenData 编译为 regex · type: text, parameter, wildcard, group笔记:path-to-regexp
- VerbalExpressions/JSVerbalExpressionsGitHubVerbalExpressions/JSVerbalExpressions
- DSL 方式构建正则
- francisrstokes/super-expressiveGitHubfrancisrstokes/super-expressive
- MIT, JS
- IonicaBizau/regex-parser.jsGitHubIonicaBizau/regex-parser.js
- json
- fast-json-patchGitHubStarcounter-Jack/JSON-Patch
- fastify/fast-json-stringifyGitHubfastify/fast-json-stringify
- 基于 schema - 更快更安全
- devalueGitHubRich-Harris/devalue
- 支持循环依赖
- 支持 undefined, Infinity, NaN, -0, Date, Map, Set, BigInt, RegExp
- class-transformer
- object <-> class
- 依赖 reflect-metadata
- 基于 decorator
- json5
- Human-readable JSON
- unjs/destrGitHubunjs/destr
- JSON.parse
- uhop/stream-jsonGitHubuhop/stream-json
- json+ - 扩展 toJSON 支持更多类型
- yahoo/serialize-javascriptGitHubyahoo/serialize-javascript
- 支持 Function
- blitz-js/superjsonGitHubblitz-js/superjsonblitz-js/superjson · 支持 undefined, bigint, Date, RegExp, Set, Map, Error, URL · 不支持 async · 参考 · kiliman/remix-typedjson笔记:superjson
- 支持 Date, undefined, bigint, RegExp, Set, Map, Error, URL
- 可以配合 NextJS 使用
- 可以配合 Decimal.js / Prisma.Decimal 使用
- iccicci/next-jsonGitHubiccicci/next-json
- yahoo/serialize-javascriptGitHubyahoo/serialize-javascript
- html/dom/xml
- fast-xml-parser
- @xmldom/xmldom
- xml2js
- saxjs
- xmlbuilder
- htmlparser2
- Fast & forgiving HTML/XML parser
- domhandler
- Handler for htmlparser2
- callback interface
- 资源占用更少,速度快
- parser5
- HTML parser and serializer
- Strict HTML5 specification compliance and accuracy.
- jsdom
- 模拟 DOM
- cheeriojs/cheerioGitHubcheeriojs/cheerio
- 默认 parser5
- slim 为 htmlparser2
- npm
- CSS selector engine
- npm
- render domhandler DOM nodes to a string
- diff
- fs/filesystem/virtual file
- isomorphic-gitGitHubisomorphic-git/isomorphic-git
- lighting-fs
- jvilk/BrowserFSGitHubjvilk/BrowserFS
- MIT, JS
- emulates the Node JS file system API
- filerGitHubfilerjs/filer
- BSD-2, JS
- 258kB/68Kb
- drop-in replacement for node's fs module
- backend: indexeddb, memory, custom
- feross/bufferGitHubfeross/buffer
- 26.8kB/8kB
- browserify/path-browserifyGitHubbrowserify/path-browserify
- vfile/vfileGitHubvfile/vfile
- gulpjs/vinylGitHubgulpjs/vinyl
- ebidel/idb.filesystem.jsGitHub Fileebidel/idb.filesystem.js/src/idb.filesystem.js
- LiteCode-IDE/virtual-file-systemGitHubLiteCode-IDE/virtual-file-system
- OS.js vfs tutorial
- aaronhuggins/jsvfsGitHubaaronhuggins/jsvfs
- files
- tar
- 77.4kB/23kB
- node
- tar
- diagram
- d3
- eclipse/sprottyGitHubeclipse/sprotty
- elkjsGitHubkieler/elkjs
- 1.3MB/404kB
- Eclipse Layout Kernel
- 2d rendering/canvas
- fabricjs/fabric.jsGitHubfabricjs/fabric.js
- SVG <-> Canvas
- Build indoor maps with Fabric.js and React
- obsidianmd/jsoncanvasGitHubobsidianmd/jsoncanvas
- file format for infinite canvas data
- HNHacker NewsHacker News #39670922Hacker News
- jonobr1/two.jsGitHubjonobr1/two.js
- signature_padGitHubszimek/signature_pad
- jakubfiala/atramentGitHubjakubfiala/atrament
- MIT, JS
- drawing & handwriting
- www.fiala.space/atrament/demo
- yisibl/resvg-jsGitHubyisibl/resvg-js
- SVG renderer, powered by Rust based resvg and napi-rs
- svgdotjs/svg.jsGitHubsvgdotjs/svg.js
- manipulating and animating SVG
- chearon/dropflowGitHubchearon/dropflow
- MIT, TS
- CSS layout engine for canvas
- konvajs/konvaGitHubkonvajs/konvakonvajs/konva · MIT, JS+TS · Canvas 2D · 级联关系 Stage - Layer - Group - Shape · 参考 · All Konva performance tips list · Stage - 根容器/绘图区域笔记:konva
- MIT, JS+TS
- react-konva
- 使用的项目
- rowsncolumns/gridGitHubrowsncolumns/grid
- MIT
- React Components for Tabular data.
- React-Proto/react-protoGitHubReact-Proto/react-proto
- 原型设计
- rowsncolumns/gridGitHubrowsncolumns/grid
- samizdatco/skia-canvasGitHubsamizdatco/skia-canvas
- google/skia/modules/canvaskitGitHub Filegoogle/skia/modules/canvaskit
- catdad/canvas-confettiGitHubcatdad/canvas-confetti
- Microsoft/maker.jsGitHubMicrosoft/maker.js
- Apache-2.0, TS
- 2D vector line drawing and shape modeling for CNC and laser cutters
- fathyb/html2svgGitHubfathyb/html2svg
- HTML,
<canvas>to SVG - fathy.fr/html2svg
- HTML,
- Brooooooklyn/canvasGitHubBrooooooklyn/canvas
- skia binding to Node.js
- fabricjs/fabric.jsGitHubfabricjs/fabric.js
- 3d rendering/canvas/webgl
- threejs
- Wiggle Tools
- Shadertoy
- pmndrs/react-three-fiberGitHubpmndrs/react-three-fiber
- React renderer for Three.js
- 3d-dice/dice-boxGitHub3d-dice/dice-box
- 3D Game Dice
- animation
- motion-canvas/motion-canvasGitHubmotion-canvas/motion-canvas
- MIT, TS
- uses generators to program animations
- creating animated videos using the Canvas API
- Visualize Complex Ideas Programmatically
- framer/motionGitHubframer/motion
- react-spring
- react-motion
- react-move
- danro/easing-jsGitHubdanro/easing-js
- mojs/mojsGitHubmojs/mojs
- gijsroge/tilt.jsGitHubgijsroge/tilt.js
- transition
- motion-canvas/motion-canvasGitHubmotion-canvas/motion-canvas
- functional
- ar/vr/xr
- WebXR Device API
- Chrome 79
- AR-js-org/AR.jsGitHubAR-js-org/AR.js
- MIT, JS
- webgl, webrtc
- fcor/arjs-gesturesGitHubfcor/arjs-gestures
- Rotate and zoom with touch gestures
- hiukim/mind-ar-jsGitHubhiukim/mind-ar-js
- MIT, JS
- Image Tracking, Face Tracking. Tensorflow.js
- AR-js-org/studioGitHubAR-js-org/studio
- Demo
- WebXR Device API
- color
- randomcolor
- Evercoder/culoriGitHubEvercoder/culori
- npm
- 👍 在维护,功能多,支持新的 colorspace
- Qix-/colorGitHubQix-/color
- MIT, JS
- npm
- color conversion and manipulation
- gka/chroma.jsGitHubgka/chroma.js
- Apache-2.0, JS
- npm
- color manipulations
- colorjs/color-nameGitHubcolorjs/color-name
- davidmerfield/randomColorGitHubdavidmerfield/randomColor
- npm
- bgrins/TinyColorGitHubbgrins/TinyColor
- npm - 14kb
- color-parse
- color
- brehaut/color-jsGitHubbrehaut/color-js
- color2k
- styled-components/polishedGitHubstyled-components/polished
- MIT, JS
- writing styles in JavaScript
- rvanwijnen/spectral.jsGitHubrvanwijnen/spectral.js
- MIT, JS
- paint like color mixing library utilizing the Kubelka-Munk theory
- CSS color
- MDN color-mix
- css-color-mixLinkdeveloper.chrome.com/docs/css-ui/css-color-mixMDN color-mix · css-color-mix · p1, p2: 0-100% - 默认 50% · 0% < p1+p2 <= 100%笔记:CSS Color
- css
- css-tree - parser
- csstype - TypeScript for CSS
- css in js
- nano-css - 0.5 kb
- jss - 22kb
- processor
- stylis - 10kb - nesting, selector namespacing, vendor prefixing, minification
- store
- sessionStorage - 单 Tab, 关闭消息, 打开新 Tab 继承
- localStorage - origin 纬度, 可监听跨 tab 变化
- cookie - C/S 交互
- tinybase
- 功能集成非常多
- localforageGitHublocalForage/localForage
- async 的 localStorage
- 可以存储到 IndexedDB, WebSQL, localStorage
- 多实例
- rxdbGitHubpubkey/rxdbrxdb · Apache-2.0, Typescript · offline first · 有 schema · 支持 punchdb, lokijs, dexie 存储 · 默认支持 REST 和 GraphQL 同步 · 使用 punchdb 也可以用 CouchDB 的同步笔记:RxDB
- 135kB, 36kB
- rxjs
- adapters: pouchdb, lokijs
- replication: couchdb, graphql
- lokijsGitHubtechfort/LokiJS
- dexieGitHubdfahlander/Dexie.js
- Apache-2.0, JS, TS
- 82kB, 26kB - 无依赖
- IndexedDB wrapper
- 支持 Sync, Subscribe
- maxnowack/signaldbGitHubmaxnowack/signaldb
- share/sharedbGitHubshare/sharedb
- 126kB, 35kB - ot-json0, array-diff
- JSON OT database backend
- Realtime database backend based on Operational Transformation (OT)
- YousefED/SyncedStoreGitHubYousefED/SyncedStore
- yjs
- 提供 react, vue, svelte 组件
- DB/SQL Builder/Database
- electric-sql/pgliteGitHubelectric-sql/pglite
- pgmock
- knex
- [kysely]
- reactive
- rxjs
- utils
- heGitHubmathiasbynens/he HTML entities
- office
- dolanmiu/docxGitHubdolanmiu/docxdolanmiu/docx · MIT, TS · 生成 docx · 修改 docx笔记:DocxJS
- generate .docx files
- ZEISS/react-view-pdfGitHubZEISS/react-view-pdf
- react, pdf.js
- SheetJS/sheetjsGitHubSheetJS/sheetjsSheetJS/sheetjs · Apache-2.0, JS · git -> sheetjs · 不在 npm https://github.com/SheetJS/sheetjs/issues/2667 · 开发也不在 Github 上了笔记:SheetJS
- Apache-2.0
- mengshukeji/Luckysheet
- handsontable/hyperformulaGitHubhandsontable/hyperformula
- dolanmiu/docxGitHubdolanmiu/docxdolanmiu/docx · MIT, TS · 生成 docx · 修改 docx笔记:DocxJS
- crdt
- yjs/yjsGitHubyjs/yjsyjs/yjs · Shared data types for building collaborative software · Providers · y-webrtc · y-websocket · y-indexeddb · y-libp2p笔记:yjs
- 实现协作编辑
- dmonad/lib0GitHubdmonad/lib0
- vs automerge #145GitHub Issueyjs/yjs#145
- y-crdt/y-crdtGitHuby-crdt/y-crdt
- Rust port of Yjs
- yousefed/SyncedStoreGitHubyousefed/SyncedStore
- YJS based
- josephg/diamond-typesGitHubjosephg/diamond-types
- automerge/automergeGitHubautomerge/automergeMIT, JS, Rust, WASM · 2.3 MB, 865.9kB · 参考 · Binary Document Format · - · Rust -> WASM · @automerge/automerge-repo-storage-indexeddb笔记:automerge
- 通用状态,自定义 CRDT
- dmonad/crdt-benchmarksGitHubdmonad/crdt-benchmarks
- Where is the CRDT for syntax trees HNHacker NewsHacker News #29433896Hacker News
inkandswitch/peritextGitHubinkandswitch/peritextfelipeleivav/yboardGitHubfelipeleivav/yboard- Vue
- multiplayer desktop-like workspace
- HN DiscussionHacker NewsHacker News #30983770Hacker News
- partykit/partykitGitHubpartykit/partykit
- MIT, TS
- streamich/json-joyGitHubstreamich/json-joy
- JSON CRDT, JSON CRDT Patch, JSON Patch+, JSON Predicate, JSON Pointer, JSON Expression, JSON Type
- yjs/yjsGitHubyjs/yjsyjs/yjs · Shared data types for building collaborative software · Providers · y-webrtc · y-websocket · y-indexeddb · y-libp2p笔记:yjs
- p2p
- editor
- tiptap
- headless, framework-agnostic and extendable rich text editor, based on ProseMirror
- tiptap
- ui
- floating-ui/floating-uiGitHubfloating-ui/floating-uifloating-ui/floating-ui · 2021 popperjs 更名为 floating-ui · 支持 web, React Native, Canvas · @floating-ui/core · @floating-ui/react-dom笔记:floating-ui
- low-level 接口
- 支持 web, React Native, Canvas
- popper -> floating-ui - 2021 - ~600b
- popper - ~3kb - 2006
- react floating-ui.com/docs/react-dom
- Popper is evolving into Floating UI!GitHubfloating-ui/floating-ui/discussions/1425
- atomiks/tippyjsGitHubatomiks/tippyjs
- 基于 @popperjs/core
- floating-ui/floating-uiGitHubfloating-ui/floating-uifloating-ui/floating-ui · 2021 popperjs 更名为 floating-ui · 支持 web, React Native, Canvas · @floating-ui/core · @floating-ui/react-dom笔记:floating-ui
- ml
- invariant
- tiny-invariantGitHubalexreardon/tiny-invariant
- tiny-warningGitHubalexreardon/tiny-warning
- 不 throw
- ts-invariantGitHubapollographql/invariant-packages
- condition build
- babel-plugin-dev-expressionnpm Packagebabel-plugin-dev-expressionNPM
- tsdxGitHubjaredpalmer/tsdx
- image/media
- nhn/tui.image-editorGitHubnhn/tui.image-editor
- fengyuanchen/compressorjsGitHubfengyuanchen/compressorjs
- image compressor
- photopeaGitHub Orgphotopea
- sharp笔记sharplovell/sharp · 基于 libvips · 类似针对视频的 fluent-ffmpeg · wasm 目前无法再浏览器使用 · 支持的 tiff 功能有限 · SHARPIGNOREGLOBALLIBVIPS · SHARPFORCEGLOBALLIBVIPS打开:/notes/web/script/lib/sharp
- kleisauke/wasm-vipsGitHubkleisauke/wasm-vips
- jimp-dev/jimpGitHubjimp-dev/jimpjimp-dev/jimp · 纯 JS · JavaScript Image Manipulation Program · 支持 jpeg, png, bmp, tiff, gif笔记:JIMP
- 纯 JS
- JavaScript Image Manipulation Program
- 支持 jpeg, png, bmp, tiff, gif
- rsms/node-imagemagickGitHubrsms/node-imagemagick
- npm
- gm
- GraphicsMagick
- fluent-ffmpeg
- GoogleChromeLabs/squooshGitHubGoogleChromeLabs/squoosh
- Make images smaller using best-in-class codecs
- compression/zip/unzip
- fflate
- TextEncoderStream
- gildas-lormeau/zip.jsGitHubgildas-lormeau/zip.js
- zip and unzip
- streams, zip64, split files and encryption
- interactive
- transloadit/uppyGitHubtransloadit/uppytransloadit/uppy · MIT, JS · Web 上传组件 · https://uppy.io/ · source - - 文件来源 · audio - 录音 · webcom - 摄像头 · screen-captrue - 屏幕截图笔记:uppy
- anvaka/panzoomGitHubanvaka/panzoom
- dnd
- core
- core-js
- dmonad/lib0GitHubdmonad/lib0
- fabiospampinato/cashGitHubfabiospampinato/cash
- jquery
- logger/logging
- console
- pino笔记pinopinojs/pino · pinojs/pino-pretty · translateTime · - · SYS:standard -> · https://betterstack.com/community/guides/logging/how-to-install-setup-and-use-pino-to-log-node-js-applic...打开:/notes/web/nodejs/pino
- 6.5kB/2.5kB
- picocolorsnpm PackagepicocolorsNPM
- roarr
- 13kB/4kB
- winston
- bunyan
- log4js
- unjs/consolaGitHubunjs/consola
- console wrapper
- HuolalaTech/page-spy-webGitHubHuolalaTech/page-spy-web
- Tencent/vConsoleGitHubTencent/vConsole
- validate
- decs/typeschemaGitHubdecs/typeschema
- adapter for TypeScript schema validation.
- standardschema.dev
- ajv
- JSON Schema
- zod
- 58kB/14kB, 不可 tree-shaking
- 定义的校验会生成 ts 类型
- TypeScript-first schema validation
- valibot
import * as v from 'valibot'- 可 tree-shaking
- 一个简单对象约 3kB/1kB
- validatorjs/validator.jsGitHubvalidatorjs/validator.js
- yupGitHubjquense/yup
- joiGitHubhapijs/joi
- vest
- superstruct
- quicktype/quicktypeGitHubquicktype/quicktype
- imbrn/v8nGitHubimbrn/v8n
- npmtrends ajv vs joi vs yup vs zod
- ar-nelson/spartan-schemaGitHubar-nelson/spartan-schema
- 定义的校验可生成 ts 类型
- validatorjs/validator.jsGitHubvalidatorjs/validator.js
- typestack/class-validatorGitHubtypestack/class-validator
- moltar/typescript-runtime-type-benchmarksGitHubmoltar/typescript-runtime-type-benchmarks
- typeboxGitHubsinclairzx81/typeboxJson Schema Type Builder with Static Type Resolution for TypeScript · 构建的结果是 JsonSchema · 同时提供 TypeScript 类型定义 · 非常 Declarative笔记:typebox
- zod笔记zodcolinhacks/zod · adpoted by: tRPC · 参考 · zod.dev · StefanTerdell/zod-to-json-schema · fabien0102/ts-to-zod · asteasolutions/zod-to-openapi打开:/notes/web/script/lib/zod
- decs/typeschemaGitHubdecs/typeschema
- typescript
- true-myth/true-mythGitHubtrue-myth/true-myth
- io-tsGitHubgcanti/io-ts
- fp-tsGitHubgcanti/fp-ts
- trpc
- typia
- ts-rest
- typescript codegen / Generating Schema from TypeScript
- vega/ts-json-schema-generatorGitHubvega/ts-json-schema-generator
- MIT, TS
- 生成一个单一的 jsonschema,通过 deifinition 查找类型引用
- 生成带 ref 有问题
- transform.tools/typescript-to-json-schema
- YousefED/typescript-json-schemaGitHubYousefED/typescript-json-schema
- BSD-3. TS
- json-schema from ts
- sinclairzx81/typebox-workbenchGitHubsinclairzx81/typebox-workbench
- 单一文件
- 生成 typebox - JSONSchema
- 生成 zod, effect, arktype, io-ts, valibot
- 直接调用 sinclairzx81/typebox-codegenGitHubsinclairzx81/typebox-codegen
- 使用 astexplorer 比较好开发这种工具
- vega/ts-json-schema-generatorGitHubvega/ts-json-schema-generator
- math
- jsbi - pure-JavaScript BigInts
- 33kB/10kB
- Uniswap SDK
- Chrome 67+, Opera 54+, Firefox 68+, Edge 79+, Safari 14+, Node.js v10.4+
- babel 插件可 transpile
- BigInt Proposal
- jsbiGitHubGoogleChromeLabs/jsbi
- bn.js
- 44kB/11.5kB
- ether.js
- MikeMcl
- decimal.jsGitHubMikeMcl/decimal.js
- 31kB/12kB
- scientific
- bignumber.js笔记bignumber.js如果考虑 bundle size 选择 big.js 否则选择 decimal.js · 操作对象 Decimal 都是 immutable 的,注意接收处理返回结果 · size: big.js < bignumber.js < decimal.js打开:/notes/web/script/lib/bignumberjs
- 18kB/8kB
- financial
- 支持 exp,ln,log
- big.jsGitHubMikeMcl/big.js
- 7kB/3kB
- decimal.js-lightGitHubMikeMcl/decimal.js-light
- 13kB/5.5kB
- 不支持 NaN, Infinity, -0
- 不支持其他 base
- big.js vs bignumber.js vs decimal.jsGitHubMikeMcl/big.js/wiki
- decimal.jsGitHubMikeMcl/decimal.js
- josdejong/mathjsGitHubjosdejong/mathjsjosdejong/mathjs · Apache-2.0, JS · deps: complex.js, decimal.js, fraction.js · 参考 · https://mathnotepad.com/ · https://observablehq.com/@dvd101x/mathjs-inside-html-and-markdown笔记:mathjs
- Apache-2.0, JS
- plot plotly.com/javascript
- stdlib-js/stdlibGitHubstdlib-js/stdlib
- @stdlib/plot - 基于 d3
- mathnotepad.com
- www.mathcha.io
- Mathematics Editor
- thoughtspile/grafarGitHubthoughtspile/grafar
- mafs.dev
- React components for interactive math
- stevenpetryk/mafsGitHubstevenpetryk/mafs
- imaphatduc/cubecubedGitHubimaphatduc/cubecubed
- 3b1b/manimGitHub3b1b/manim
- jsxgraph/jsxgraphGitHubjsxgraph/jsxgraph
- MIT, LGPL, JS
- interactive geometry, function plotting, charting, and data visualization
- mathjax
- CindyJS/CindyJSGitHubCindyJS/CindyJS
- Apache-2.0, JS
- interactive mathematical
- 2D Geometry, 3D Geometry, Algebra, Calculus, Differential Equations, Statistics, Probability, Linear Algebra, Complex Numbers, Trigonometry
- upmath.me Math Online Editor
- tex, tikz
- kisonecat/tikzjaxGitHubkisonecat/tikzjaxpgf-tikz/pgf · Portable Graphic Format for TeX · PetarV-/TikZ · walmes/Tikz · f0nzie/tikzfavorites · janosh/tikz · xiaohanyu/awesome-tikz笔记:tikz
- TikZ running under WebAssembly in the browser
- katex
- Asymptote (vector graphics language)
- jsbi - pure-JavaScript BigInts
- geo
- Turfjs/turfGitHubTurfjs/turf
- MIT, TS
- geospatial engine
- geojson.io
- Turfjs/turfGitHubTurfjs/turf
- Phy
- stat/bi/data
- jstatGitHubjstat/jstatjstat/jstat · MIT, JS · ⚠️ 不怎么维护了 · alternatives · vega-statistics · simple-statistics · mathjs笔记:jstat
- cubejs
- uwdata/arqueroGitHubuwdata/arquero
- pbeshai/tidyGitHubpbeshai/tidy
- markdown
- markdown-it
- mdx-js/mdxGitHubmdx-js/mdxmdx-js/mdx · Markdown+JSX · remark, rehype, recma · 参考 · shuding/nextra · Next.js Static Site Generator · 不支持 nextjs 13 shuding/nextra#935笔记:MDX
- wooorm/xdmGitHubwooorm/xdm
- MDX compiler
- micromark/micromarkGitHubmicromark/micromarkmicromark/micromark · new foundation for @unifiedjs · remark 基于 micromark笔记:micromark
- 替代 remark-parse
- markedjs/markedGitHubmarkedjs/marked
- unifiedjs
- Auth/ACL/Security
- stalniy/caslGitHubstalniy/caslstalniy/casl · MIT, TS, JS · core 6KB · CASL - CanCanAble Simple Language · AuthZ · 实现 ABAC、RBAC · Ruby CanCan, RoR CanCanCan笔记:CASL
- Syntax Highlighter
- PrismJS/prismGitHubPrismJS/prismPrismJS/prism · 代码高亮 · test · example · - · https://prismjs.com/examples/prism-ebnf.html笔记:prismjs
- MIT, JS
- shikijs/shikiGitHubshikijs/shiki
- MIT, TS
- shikijs/shiki-magic-moveGitHubshikijs/shiki-magic-move
- Highlight.js
- wooorm/lowlightGitHubwooorm/lowlight
- 基于 lowlight
- wooorm/refractorGitHubwooorm/refractor
- 基于 Prism.js
- wooorm/starry-nightGitHubwooorm/starry-night
- TextMate syntax
- react-syntax-highlighter/react-syntax-highlighterGitHubreact-syntax-highlighter/react-syntax-highlighter
- 基于 lowlight, refractor
- prismjs, highlightjs
- Lezer
- antonmedv/codejarGitHubantonmedv/codejar
- embeddable code editor
- react-simple-code-editor/react-simple-code-editorGitHubreact-simple-code-editor/react-simple-code-editor
- 基于 prismjs
- inokawa/rich-textareaGitHubinokawa/rich-textarea
- MIT, TS, React
- 基于 textarea overlay
- inokawa/edixGitHubinokawa/edix
- framework agnostic
- Justineo/highlightable-inputGitHubJustineo/highlightable-input
- 基于 contenteditable
- twoslashes/twoslashGitHubtwoslashes/twoslash
- Markup for generating rich type information in your documentations ahead of time
- PrismJS/prismGitHubPrismJS/prismPrismJS/prism · 代码高亮 · test · example · - · https://prismjs.com/examples/prism-ebnf.html笔记:prismjs
- jwt
- openid-clientGitHubpanva/node-openid-client
- nodejs RP client for passport.
- openid-clientGitHubpanva/node-openid-client
- dev
- nolanlawson/fuiteGitHubnolanlawson/fuite
- finding memory leaks in web apps
- sverweij/dependency-cruiserGitHubsverweij/dependency-cruiser
- nolanlawson/fuiteGitHubnolanlawson/fuite
- i18n
- lingodotdev/lingo.devGitHublingodotdev/lingo.devlingodotdev/lingo.dev · AI 本地化平台 for product teams · 使用 LLM 翻译 App、网站、数据库 · Features: · CI/CD Integration · Git Native UI Localization笔记:lingo.dev
- Apache-2.0, TS
- AI-powered i18n toolkit
- lingui/js-linguiGitHublingui/js-linguilingui/js-lingui · 支持 macro · 支持 语义 · 支持 自动提取 · 支持 PO 格式 · https://lingui.dev/ · NextJS · CatalogFormat - https://lingui.dev/ref/catalog-formats笔记:lingui
- core - 30kB, 8kB
- react + 7kB, 2.5kB
- @lingui/macro
- 支持语义
- 支持 自动提取
- lingui.dev
- i18nextGitHubi18next/i18nexti18next/i18next笔记:i18next
- MIT, JS, TS
- 56kB, 15kB
- key-based
- globalizejs/globalizeGitHubglobalizejs/globalize
- MIT, JS
- airbnb/polyglot.jsGitHubairbnb/polyglot.js
- BSD-2, JS
- lukeed/rosettaGitHublukeed/rosetta
- 27 LOC
- lukeed/templiteGitHublukeed/templite
- dlv
- react-intl
- 服务
- 参考
- PO - Portable Object
- POT - Portable Object Template
- i18next -> LinguiJS
- lingodotdev/lingo.devGitHublingodotdev/lingo.devlingodotdev/lingo.dev · AI 本地化平台 for product teams · 使用 LLM 翻译 App、网站、数据库 · Features: · CI/CD Integration · Git Native UI Localization笔记:lingo.dev
- object path
- dlvGitHubdevelopit/dlv
- get by path
- lukeed/dsetGitHublukeed/dset
- set by path
- dlvGitHubdevelopit/dlv
- benchmark
- framework
- Effect-TS/effectGitHubEffect-TS/effect
- MIT, TS
- ecosystem of tools to build robust applications in TypeScript.
- Effect-TS/effectGitHubEffect-TS/effect
- debug
- HuolalaTech/page-spy-webGitHubHuolalaTech/page-spy-web
- MIT, TS
- by 货拉拉
- Debug remotely and easily like chrome devtools.
- HuolalaTech/page-spy-webGitHubHuolalaTech/page-spy-web
- data/io
- ArrayBuffer
- js 标准里的 nodejs Buffer 对等角色
- mdn-data - mdn/dataGitHubmdn/data
- feross/bufferGitHubfeross/buffer
- NodeJS Buffer
- ArrayBuffer
- fetch/network
- axios
- 30kB/18kB
- based on XMLHttpRequests
- elbywan/wretchGitHubelbywan/wretch
- tiny wrapper built around fetch
- sindresorhus/kyGitHubsindresorhus/kysindresorhus/ky · fetch wrapper · 在检测 supportsRequestStreams 时,可能会出现这个问题笔记:ky
- fetch wrapper
- 9.5kB/3.3kB
- 0 依赖
- sindresorhus/gotGitHubsindresorhus/got
- for NodeJS
- undici
- NodeJS 的 fetch 实现
- 如果需要用代理功能则需要直接引入
- superagent
request- node-fetch
- NodeJS v18 内置
- axios
- codec/parser
- punycode
- url-js
- url
- AST/parser
- meriyah/meriyahGitHubmeriyah/meriyah
- 127kB, 40kB
- acornjs/acornGitHubacornjs/acornacornjs/acorn · small, fast, JavaScript-based JavaScript parser · 只包含 stage4+ 特性 · stage3 通过插件提供 acorn-stage3 · rollup 内部使用 acorn笔记:acorn
- 107kB, 31.1kB
- acorn-jsx
- acorn-bigint
- estree/estreeGitHubestree/estree
- eslint, acorn, babel, Esprima
- jquery/esprimaGitHubjquery/esprima
- meriyah/meriyahGitHubmeriyah/meriyah
- router
- URLPattern Chrome 95+
- lukeed/regexparamGitHublukeed/regexparam
- lukeed/polkaGitHublukeed/polka
- Web Server
- pillarjs/path-to-regexpGitHubpillarjs/path-to-regexppillarjs/path-to-regexp · 8.x 版本不支持自定义 pattern · 将字符串 template 解析为 TokenData · 将 TokenData 编译为 regex · type: text, parameter, wildcard, group笔记:path-to-regexp
- React router 之前版本
- hono RegExpRouter
- audio/sound
- katspaugh/wavesurfer.jsGitHubkatspaugh/wavesurfer.js
- BSD-3, TS
- waveform player
- makeusabrew/audioteejsGitHubmakeusabrew/audioteejs
- NodeJS wrapper library around AudioteeGitHubmakeusabrew/audiotee
- 语音输入
- goldfire/howler.jsGitHubgoldfire/howler.js
- MIT, JS
- Web Audio API, HTML5 Audio
- DawidWraga/davstack/packages/soundGitHub FileDawidWraga/davstack/packages/sound
- bbc/peaks.jsGitHubbbc/peaks.js
- LGPLv3, JS
- audio waveforms
- BenzLeung/benz-amr-recorderGitHubBenzLeung/benz-amr-recorder
- jpemartins/amr.jsGitHubjpemartins/amr.js
- opencore-amr version 0.1.3 using emscripten
- katspaugh/wavesurfer.jsGitHubkatspaugh/wavesurfer.js
- glob
- thecodrr/fdirGitHubthecodrr/fdir
- MIT, TS
- fastest directory crawler & globbing library
- 0 依赖,glob 通过传入函数实现
- globbyGitHubsindresorhus/globby
- MIT
- 基于 fast-glob 增加部分功能
- 支持 ignore 文件 - .gitignore
- fast-globGitHubmrmlnc/fast-glob
- 使用 micromatch
- globGitHubisaacs/node-glob
- micromatch/micromatchGitHubmicromatch/micromatch
- wildcard and glob matching library
- picomatch+brace 展开 -
{.ts,.js}展开 - 依赖 npm npm npm
- 替代 minimatch, multimatch
- micromatch/picomatchGitHubmicromatch/picomatch
- 轻量级,0依赖
- 支持
*,?,** - 支持 extglob
@(pattern),*(pattern),+(pattern),?(pattern),!(pattern) - 支持 POSIX brackets
[[:alpha:]]- alnum, alpha, ascii, blank, cntrl, digit, graph, lower, print, punct, space, upper, word, xdigit - 不支持 Braces
- 20kB/7kB
- thecodrr/fdirGitHubthecodrr/fdir
- test - WebStorm 支持 jest, mocha
- node
- NodeJS v18 内置 Test Runner
- jest
- by Facebook
- mocha
- Selenium
- jasmine
- karma
- puppeteer
- storybook
- playwright
- lost-pixelGitHublost-pixel/lost-pixel
- ava
- WebStrom Plugin AVA Test Run Configuration Generator
- WEB-21788
- vitest
- testing libraryGitHub Orgtesting-library
- react, dom
- lukeed/uvuGitHublukeed/uvu
- webdriver io
- E2E - Browser
- cypress
- Web Test Runner
- nightwatchGitHubnightwatchjs/nightwatch
- MIT, JS
- W3C Webdriver API
- tap - 测试协议
- tapjs/node-tapGitHubtapjs/node-tap
- tap4j.org
- WebStorm 暂不支持 WEB-20916
- ava vs jasmine vs jest vs mocha vs qunit
- node
- random data generator/mock data
- json-schema-faker
- json-schema-faker.js.org
- 不支持 draft 2019-09 #289GitHub Issuejson-schema-faker/json-schema-faker#289
- @faker-js/faker
- 2.8MB, 907kB
- chance笔记chancechancejs/chancejs · MIT, JS · Random generator · https://chancejs.com/打开:/notes/web/script/lib/chance
- 206kB, 67kB
- danibram/mocker-data-generatorGitHubdanibram/mocker-data-generator
- json-schema-faker
- Presentation Slides
- slidevjs/slidevGitHubslidevjs/slidev
- TS, Vue
- slidevjs/slidevGitHubslidevjs/slidev
- Font
- MISC
- useragent/figureprint
- 51Degrees/RendererGitHub51Degrees/Renderer
- return the GPU renderer string for iPhone and iPad
- pmndrs/detect-gpuGitHubpmndrs/detect-gpu
- shaka-player-demo.appspot.com/support.html
- 51Degrees/RendererGitHub51Degrees/Renderer
- webcomponents
- google/model-viewerGitHubgoogle/model-viewer
- 3D Model
- google/model-viewerGitHubgoogle/model-viewer
- state / store
- jotai笔记Jotaipmndrs/jotai 是什么? · 7.1kB/2.7kB · 大状态拆分小(原子/atom)状态 - 原子状态更利于复用和减小变化影响范围 · 核心接口 atom, Provider, useAtom, Store · jotai/utils 包含其他工具 atom打开:/notes/web/react/jotai
- zustand笔记zustandpmndrs/zustand 是什么? · out of tree 状态管理 · 可外部查询、修改、订阅 · 可多个渲染树使用 · 支持 react concurrency · Context 可选 · 默认全局 store 单例 · 可在其它框架使用 - 不依赖 react打开:/notes/web/react/zustand
- valtio笔记valtiopmndrs/valtio · 7kB/2.5kB - use-sync-external-store+proxy-compare · 基于 proxy 的状态管理 · 类似 mobx, vue · 默认状态变化是异步触发监听 · 可以使用 Class 作为 被代理对象打开:/notes/web/react/valtio
- nanostoreGitHubnanostores/nanostores
- 类似于 jotai
- 297 bytes
- React, Vue, Svelte, Solid, Lit, Angular, SSR
- saasquatch/bunshiGitHubsaasquatch/bunshi
- 1.18kb
- Molecule pattern for jotai, nanostore, valtio, zustand
- React, Vue, Vanilla
- FSM / Finite state machines
- XState
- chakra-ui/zagGitHubchakra-ui/zag
- React, Vue, Solid
- from chakra-ui
- search/fuzz
- nextapps-de/flexsearchGitHubnextapps-de/flexsearch
- size min.mjs 16kB
- krisk/fuseGitHubkrisk/fuse
- MIT, JS
- npm.js
- size min.mjs 16kB
- olivernn/lunr.jsGitHubolivernn/lunr.js
- MIT, JS
- farzher/fuzzysort)GitHubfarzher/fuzzysort
- MIT, JS
- npm
- lucaong/minisearchGitHublucaong/minisearch
- MIT, TS, JS
- npm
- kentcdodds/match-sorterGitHubkentcdodds/match-sorter
- MIT, TS
- npm
- leeoniya/uFuzzyGitHubleeoniya/uFuzzy
- MIT, JS
- Nozbe/microfuzzGitHubNozbe/microfuzz
- MIT, JS
- npm
- m31coding/fuzzy-searchGitHubm31coding/fuzzy-search
- MIT, TS
- flexsearch vs fuse.js vs fuzzysort vs match-sorter vs minisearch
- nextapps-de/flexsearchGitHubnextapps-de/flexsearch
- security/fuzzer
- layout
- gridstack/gridstack.jsGitHubgridstack/gridstack.js
- MIT, TS
- Build interactive dashboards
- gridstack/gridstack.jsGitHubgridstack/gridstack.js
- shell/script
- sindresorhus/execaGitHubsindresorhus/execasindresorhus/execa · MIT, JS+TS笔记:execa
- MIT, JS+TS
- shelljs/shelljsGitHubshelljs/shelljs
- BSD-3, JS
- Portable Unix shell commands for Node.js
- google/zxGitHubgoogle/zx
- sindresorhus/execaGitHubsindresorhus/execasindresorhus/execa · MIT, JS+TS笔记:execa
- http
- jshttp/negotiatorGitHubjshttp/negotiator
- MIT, JS
- HTTP content negotiator
- jshttp/negotiatorGitHubjshttp/negotiator
- xyflow/xyflowGitHubxyflow/xyflow
Runtimes & Engines
| Engine | Since | author | License | Size | notes |
|---|---|---|---|---|---|
| [V8] | BSD-3 | 28M | |||
| [JavaScriptCore] | MIT | 620K | |||
| Node | |||||
| Bun | 60M | ||||
| Deno | |||||
| [QuickJS] | MIT | 620K | |||
| [DukTape] | MIT | 331K | |||
| [MuJS] | 2013 | ISC | 244K | ||
| [JerryScript] | Apache-2.0 | 211K | |||
| [Hermes] | Meta | MIT | 27M | ||
| [XS] | GPL | 1.2M | |||
| saghul/txiki.jsGitHubsaghul/txiki.js | 2019 | MIT | 1.2M | QuickJS, libuv, wasm3, curl, libffi,WinterCG | |
| holepunchto/bareGitHubholepunchto/bare | 2022 | Apache-2.0 | libuv, libjs, v8 | ||
| just-js/loGitHubjust-js/lo | 2023 | MIT | 15M | v8 | |
| GNOME/gjs | 2008 | based on SpiderMonkey, binding to GNOME | |||
| 2014 | libuv-based, duktape | ||||
| 2014 | Apple | JavaScript for Automation, macOS only | |||
| 2016 | Microsoft | MIT | multi-threaded, v8 | ||
| GraalJS | Oracle | ||||
| ChakraCore | Microsoft |
- Runtime - stdlib/sandboxing
- NodeJS
- Deno
- Bun
- andrewmd5/hakoGitHubandrewmd5/hako
- fork of PrimJS
- lynx-family/primjsGitHublynx-family/primjs
- based on QuickJS
- for lynxGitHublynx-family/lynx
- 字节 跨平台框架
- 目前 React 为主
- workerd
- edge-runtime
- losfair/blueboatGitHublosfair/blueboat
- Apache-2.0, Rust
- multi-tenant serverless JavaScript runtime
- V8 isolate
- vm2GitHubpatriksimek/vm2
- vs node
- 更安全
- 暴露更少的内容
- 使用 proxy 避免逃逸
- 覆盖 require 避免访问内部
- 支持 transpiler
- vs node
- vm - NodeJS
- ringo/ringojsGitHubringo/ringojs
- JVM
- saghul/txiki.jsGitHubsaghul/txiki.js
- MIT, C
- QuickJS + libuv + wasm3 + curl + libffi
- Engine - JIT
- V8GitHubv8/v8
- Chrome
- JavaScriptCore
- WebkitGitHubWebKit/WebKitWebKit/WebKit · https://webkit.org/笔记:Webkit
- SpiderMonkey
- Firefox
- GraalJS
- Oracle
- GraalVM
- JVM
- ChakraCoreGitHubchakra-core/ChakraCore
- MIT, C++
- 早先的 Microsoft Edge
just-js/justGitHubjust-js/just- small v8 for linux only
- ~15 MB
- facebook/hermesGitHubfacebook/hermesfacebook/hermes · React Native Runtime · AOT · Static Hermes · 利用 Typescript 的类型就行静态编译 · https://twitter.com/tmikov/status/1720103356738474060笔记:hermes
- MIT, C++
- React Native
- XS Moddable
- GPL
- CanadaHonk/porfforGitHubCanadaHonk/porfforCanadaHonk/porffor · MIT, JS, TS · AoT JS Compiler笔记:Porffor
- MIT, JS
- from-scratch AOT JS -> WASM
- porffor.goose.icu
- V8GitHubv8/v8
- Engine - embeddable/interpreter
- svaarala/duktapeGitHubsvaarala/duktape
- MIT, C
- bellard/quickjsGitHubbellard/quickjsbellard/quickjs · MIT, C · Typescript · https://bellard.org/quickjs/bench.html · quickjs-ng/quickjs · sebastianwessel/quickjs笔记:quickjs
- MIT, C
- Typescript
- bellard.org/quickjs/bench.html
- quickjs-ng/quickjsGitHubquickjs-ng/quickjsbellard/quickjs · MIT, C · Typescript · https://bellard.org/quickjs/bench.html · quickjs-ng/quickjs · sebastianwessel/quickjs笔记:quickjs
- cesanta/mjsGitHubcesanta/mjs
- GPLv2, C
- ccxvii/mujsGitHubccxvii/mujs
- ISC, C
- fastschema/qjsGitHubfastschema/qjs
- MIT, Go, Wazero
- svaarala/duktapeGitHubsvaarala/duktape
- Sandbox
- v8 isolate
- WICG/portalsGitHubWICG/portals
- JetBrains/websandboxGitHubJetBrains/websandbox
- Apache-2.0, TS
- iframe
- NeilFraser/JS-InterpreterGitHubNeilFraser/JS-Interpreter
- sandboxed JavaScript interpreter in JavaScript
- LavaMoat/LavaMoatGitHubLavaMoat/LavaMoat
- MIT
- based on endo
- endojs/endoGitHubendojs/endo
- distributed secure JavaScript sandbox, based on SES
- SES - Secure EcmaScript
- tc39/proposal-sesGitHubtc39/proposal-ses
- endojs/JessieGitHubendojs/Jessie
- simple universal safe mobile code
- markwylde/workerboxGitHubmarkwylde/workerbox
- MIT, JS
- justjake/quickjs-emscriptenGitHubjustjake/quickjs-emscripten
- tc39/proposal-shadowrealmGitHubtc39/proposal-shadowrealm
- Azure AppBladesGitHub FileAzure/portaldocs/portal-sdk/generated/portalfx-blades-appblades.md
- IoT
- espruinoGitHubespruino/Espruino
- MPLv2, C
- 128kB Flash, 8kB RAM
- jerryscript-project/jerryscriptGitHubjerryscript-project/jerryscript
- Apache-2.0, C99
- ECMAScript 5.1
- 160K
- espruinoGitHubespruino/Espruino
- GoogleChromeLabs/jsvuGitHubGoogleChromeLabs/jsvu
- JavaScript engine Version Updater
- 支持 charkra, gralljs, hermes, JavaScriptCore, quickjs, SpiderMonkey, v8, v8 debug, xs
- Typescript
- detection/user agent/fingerprinting
- AssemblyScript/assemblyscriptGitHubAssemblyScript/assemblyscriptAssemblyScript/assemblyscript · Apache-2.0 · TypeScript-like language for WebAssembly · 参考 · https://www.assemblyscript.org/status.html笔记:AssemblyScript
- Apache-2.0, TypeScript
- WebAssembly/binaryenGitHubWebAssembly/binaryen
- Apache-2.0, C++
- Binaryen IR
- CanadaHonk/porfforGitHubCanadaHonk/porfforCanadaHonk/porffor · MIT, JS, TS · AoT JS Compiler笔记:Porffor
- MIT, JS, TS
- JS/TS -> WASM
- WASM -> Native
- turbolent/w2c2GitHubturbolent/w2c2
- MIT, C, WebAssembly
- WASM -> C
- microsoft/pxtGitHubmicrosoft/pxt
- MIT, TS, JS
- Microsoft MakeCode (PXT - Programming eXperience Toolkit)
- sablejs/sablejsGitHubsablejs/sablejs
- JS
- 国产
- ECMA5.1
- License 不明确 - sablejs/sablejs#19GitHub Issuesablejs/sablejs#19
- plasma-umass/doppioGitHubplasma-umass/doppio
- JVM in TypeScript v0.5.0
- List of ECMAScript enginesWikipediaList of ECMAScript engines
- privatenumber/ts-runtime-comparisonGitHubprivatenumber/ts-runtime-comparison
Bun Awesome
- oven-sh/awesome-bunGitHuboven-sh/awesome-bunoven-sh/bun · MIT, Zig · JavaScriptCore,tinycc,libiconv LGPLv2 · boringssl,libarchive,libiconv,lol-html,mimalloc,picohttp,tinycc,uSockets,zlib-cloudflare,libicu,uWebsockets笔记:bun
- tr1ckydev/webview-bunGitHubtr1ckydev/webview-bun
- Binding for webview/webviewGitHubwebview/webview
WebServer
- Reuqest/Response/WebStandard - 支持 EdgeRuntime/Deno/Bun/Cloudflare
- honojs/honoGitHubhonojs/honohonojs/hono · Fast, Lightweight, Web-standards · 支持环境 · Cloudflare Workers · Cloudflare Pages · Fastly Compute · Deno · Bun笔记:Hono
- elysiajs/elysiaGitHubelysiajs/elysiaelysiajs/elysia · 基于 bun 的 Web 框架 · 使用 @sinclair/typebox · 代码量很少,逻辑简单 · AOT · 生成代码来进行 route · route 变成一个大 switch · 与 hono 非常相似,但面向 bun 为主笔记:elysia
- hattipjs/hattipGitHubhattipjs/hattip
- unjs/nitroGitHubunjs/nitro
- Router
- lukeautry/tsoaGitHublukeautry/tsoa
- Build OpenAPI-compliant REST APIs using TypeScript and Node
- support Express, Hapi, Koa
- itty-router
- lukeautry/tsoaGitHublukeautry/tsoa
- fastify
- koa
- express
- [polka]
- trpc
- nextjs
- jeremydaly/lambda-apiGitHubjeremydaly/lambda-api
- 路由
- typestack/routing-controllersGitHubtypestack/routing-controllers
- 通过 修饰器 为 express.js, koa.js 定义路由
- typestack/socket-controllersGitHubtypestack/socket-controllers
- typestack/routing-controllersGitHubtypestack/routing-controllers
Typescript
- typestackGitHub Orgtypestack
- dsherret/ts-morphGitHubdsherret/ts-morph
- Compiler API wrapper
- AST edit
- 替代 tsc
- ts-patch
- typia
- trpc
- zod
Polyfill
- core-js
- ardatan/whatwg-nodeGitHubardatan/whatwg-node
- fetch
- busboy -> parse form data
- fast-querystring
- fast-url-parser
- events
- server
- fetch
- aermin/web-locksGitHubaermin/web-locks
- Modernizr/ModernizrGitHubModernizr/Modernizr
Edge/Serverless
- blueboat
- flareact/flareactGitHubflareact/flareact
Game
- KilledByAPixel/LittleJSGitHubKilledByAPixel/LittleJS
- Tiny, 2D, WebGL
Template
- eta
- 5.7kB/2.4kB
- edge-js/edgeGitHubedge-js/edge
- MIT, TS
- lukeed/templiteGitHublukeed/templite
- 154 bytes
{{name}}
- lukeed/tempuraGitHublukeed/tempura
- linkedin/dustjsGitHublinkedin/dustjs
- tj/consolidate.jsGitHubtj/consolidate.js
- ejs
- nunjucks
- pug
- twig
- liquid
- doT
- 通用/跨语言/非信任代码
- handlebars
- mustache
- aui/art-templateGitHubaui/art-template
- 高性能,不再维护
有趣
- enkimute/ganja.jsGitHubenkimute/ganja.js - 几何代数
- lokesh/color-thiefGitHublokesh/color-thief
- 提取 image 颜色
Crypto
- Hashing
- brix/crypto-jsGitHubbrix/crypto-js
- rzcoder/node-rsaGitHubrzcoder/node-rsa
- pure js, 不依赖 OpenSSL, 支持浏览器
- travist/jsencryptGitHubtravist/jsencrypt
- RSA
- digitalbazaar/forgeGitHubdigitalbazaar/forge
- node-forge
- dchest/tweetnacl-jsGitHubdchest/tweetnacl-js
- Port of TweetNaCl cryptographic library to JavaScript
- aes-decrypter
- pkcs7
- videojs-contrib-hls
- AES-128 segment encryption
- originjs/crypto-js-wasmGitHuboriginjs/crypto-js-wasm
- Rust -> WASM
- npm:@originjs/crypto-js-wasm
- JavaScript Crypto Libraries gist.github.com/jo/8619441
- www.webtoolkit.info/javascript-sha1.html
- www.webtoolkit.info/javascript-sha256.html
- www.webtoolkit.info/javascript-md5.html
- www.webtoolkit.info/javascript-base64.html
- pajhome.org.uk/crypt/md5
- Object hash
- tjwebb/fnv-plusGitHubtjwebb/fnv-plus
- sinclairzx81/typeboxGitHubsinclairzx81/typeboxJson Schema Type Builder with Static Type Resolution for TypeScript · 构建的结果是 JsonSchema · 同时提供 TypeScript 类型定义 · 非常 Declarative笔记:typebox
UX
工具
- bundler/transpile/build/tool
- evanw/esbuildGitHubevanw/esbuildevanw/esbuild · MIT, Go · bundler & minifier · used by Vite, Snowpack · roadmap · https://esbuild.github.io/api/ · https://esbuild.github.io/笔记:ESBuild
- MIT, Go
- babel
- ts
- egoist/tsupGitHubegoist/tsup
- MIT, TS, esbuild
- Bundle .js, .json, .mjs, .ts, .tsx
- 主要用于 NodeJS, Library 环境
- 次要关注 HTML, CSS 等场景
- swc
- rsbuild
- by rspack
- web-infra-dev/rspackGitHubweb-infra-dev/rspack
- MIT, Rust, SWC, NAPI-RS
- Rust-based web bundler
- farm-fe/farmGitHubfarm-fe/farm
- MIT, Rust, TS, SWC, NAPI-RS
- alangpierce/sucraseGitHubalangpierce/sucrase
- turbopack
- rolldownGitHubrolldown/rolldown
- webpack
- rollup
- parcel
- vite
- developit/microbundleGitHubdevelopit/microbundle
- webpro-nl/knipGitHubwebpro-nl/knipwebpro-nl/knip · Find unused · knip.json · knip.jsonc · .knip.json · .knip.jsonc · knip.ts · knip.js · knip.config.ts · knip.config.js笔记:knip
- Find unused
- retire.js
wooorm/xdmGitHubwooorm/xdm- MDX compiler - No runtime. With esbuild, Rollup, and webpack plugins
preactjs/wmrGitHubpreactjs/wmr- MIT, JS
- tiny all-in-one development tool for modern web apps
- evanw/esbuildGitHubevanw/esbuildevanw/esbuild · MIT, Go · bundler & minifier · used by Vite, Snowpack · roadmap · https://esbuild.github.io/api/ · https://esbuild.github.io/笔记:ESBuild
- formatter
- prettier
- linter
- eslint
- biomejs/biomeGitHubbiomejs/biomebiomejs/biome · MIT, Rust · linter, formatter · roma -> biome · 参考 · 支持的语言 · 不支持格式化 HTML, CSS, Yaml, Markdown, GQL · prettier 支持所有这些笔记:biome
- MIT, Rust
- linter
- arethetypeswrong/arethetypeswrong.github.ioGitHubarethetypeswrong/arethetypeswrong.github.io
- publint.dev
- tester
- ava
- vitest
- tap
- ava
- mocha
- e2e test
- cypress
- webdriver io
- coverage
- istanbuljs/nycGitHubistanbuljs/nyc
- c8
- CryogenicPlanet/deppGitHubCryogenicPlanet/depp
go install github.com/cryogenicplanet/depp@latest
# .depp/config.json
depp init
depp
# 检查 package.json
npx -y publint
npx -y @biomejs/biome check ./srcPackagesgithub.com/cryogenicplanet/deppGo Packagegithub.com/cryogenicplanet/deppGo
Fun
Reading
Debugging
关联信息
反向链接和本文引用的外部资料。
References
GitHub
413 条- CanadaHonk/porfforgithub.com/CanadaHonk/porffor
- cheeriojs/cheeriogithub.com/cheeriojs/cheerio
- dmonad/lib0github.com/dmonad/lib0
- feross/buffergithub.com/feross/buffer
- gcanti/fp-tsgithub.com/gcanti/fp-ts
- HuolalaTech/page-spy-webgithub.com/HuolalaTech/page-spy-web
- lukeed/templitegithub.com/lukeed/templite
- pillarjs/path-to-regexpgithub.com/pillarjs/path-to-regexp
另有 405 个未显示 references。
Wikipedia
1 条- List of ECMAScript enginesWikipedia:List of ECMAScript engines
Hacker News
3 条- Hacker News #29433896HN #29433896
- Hacker News #30983770HN #30983770
- Hacker News #39670922HN #39670922
Packages
2 条- babel-plugin-dev-expressionwww.npmjs.com/package/babel-plugin-dev-expression
- picocolorswww.npmjs.com/package/picocolors
其他外链
65 条- abrahamjuliot.github.io/creepjsabrahamjuliot.github.io/creepjs
- astexplorer.netastexplorer.net/
- barba.js.orgbarba.js.org/
- bellard.org/quickjs/bench.htmlbellard.org/quickjs/bench.html
- blog.csdn.net/qq_28864105/article/details/119609531blog.csdn.net/qq_28864105/article/details/119609531
- blog.logrocket.com/build-indoor-maps-fabric-js-using-reactblog.logrocket.com/build-indoor-maps-fabric-js-using-react
- cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.jsoncdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json
- crowdin.comcrowdin.com/
另有 57 个未显示 references。
另有 462 个 references 未显示。