node-md5

A tiny, dependency-light JavaScript function for computing MD5 hashes of strings, buffers, and byte arrays.

Library
npm
v2.3.0
914stars
BSD 3-Clause License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
41/100Fair
Development Activity0
Maintenance20
Community56
Maturity60
Momentum28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
48/100Fair
Architecture40
Code Quality45
Innovation20
Learning Curve85

md5 is a single-purpose JavaScript library that hashes messages using the MD5 algorithm. It accepts strings, Node.js Buffers, arrays, and Uint8Array instances, and returns a hex digest by default (with options for raw bytes or a binary string). The implementation is a pure-JavaScript port of the classic MD5 algorithm originally published by Ronald Rivest in 1991, adapted from Jeff Mott’s CryptoJS implementation.

Because it has no native bindings and only a handful of small dependencies (crypt, charenc, is-buffer), it works identically in Node.js and in the browser (via bundlers like webpack). It has shipped as the md5 npm package since 2011 and is widely used as a drop-in hashing utility for cache keys, checksums, Gravatar URLs, and other non-cryptographic identity-hashing use cases.

What You Get

  • A single md5(message, options) function that returns a 32-character hex digest by default
  • Support for hashing strings, Node.js Buffers, plain arrays, and Uint8Array instances
  • An asBytes option to get the raw digest as a byte array instead of a hex string
  • An asString option to get the digest as a binary string, plus an encoding: 'binary' option for binary-encoded string input
  • Isomorphic support for both Node.js and browser bundles (webpack config included in the repo)

Common Use Cases

  • Generating Gravatar avatar URLs from a hashed email address
  • Producing cache keys or checksums for request/response deduplication
  • Computing quick file or content fingerprints where cryptographic strength isn’t required
  • Hashing form or upload data client-side before sending it to an API
  • Providing a lightweight MD5 fallback in environments without Node’s built-in crypto module (e.g. certain browser bundles)

Under The Hood

Architecture The library is a single self-contained module (md5.js) wrapped in an IIFE that exports one function. Internally it delegates byte/word conversion to the sibling crypt package and string-encoding handling to charenc, while is-buffer detects Node.js Buffers so the same code path can normalize strings, buffers, arrays, and typed arrays before running the standard MD5 compression rounds (_ff/_gg/_hh/_ii). There is no class hierarchy or plugin surface — all branching for input type and output format happens inline in the exported wrapper, making the whole library effectively one function plus its four auxiliary round functions.

Tech Stack Plain, untyped JavaScript with no build step for the library itself — md5.js is shipped directly as the package’s main entry. It depends on three small same-author-adjacent helper packages (crypt, charenc, is-buffer) rather than a general-purpose crypto framework. Mocha is used for tests and webpack is configured (via webpack.config.js) purely to produce a browser bundle for the demo page, not as part of the published package.

Code Quality test.js runs a small mocha/assert suite covering known hash vectors, Buffer and Uint8Array input, encoding options, and error-throwing on null/undefined input — a reasonable but limited set of cases for a single-function library. There are no TypeScript types, no linter configuration, and no active CI workflow (the README’s Travis badge points at a service the project no longer effectively uses); naming and error handling are simple and consistent throughout the small codebase.

API Design The public surface is intentionally tiny: one function, one options object with three well-documented flags (asBytes, asString, encoding). This minimizes onboarding friction — there is effectively nothing to configure — at the cost of no support for streaming large inputs or incremental hashing, which some hashing libraries offer.

Used by 15 apps in this directory

TypeScript
96%
Other

Cal.diy

Scheduling

48,218

The 100% MIT-licensed, community-driven scheduling platform — self-host your own booking infrastructure with no enterprise strings attached.

View details
95
Repo Health
86
Technical
65
Dependency
Built with
TypeScript96%
Updated yesterday
Ruby
49%
Other

Chatwoot

Customer Support

36,549

Open-source omnichannel customer support platform with AI-powered agents, live chat, and self-hosting — a full Intercom and Zendesk alternative.

View details
95
Repo Health
78
Technical
69
Dependency
Built with
Ruby49%
Vue26%
JavaScript22%
Updated yesterday
TypeScript
99%
AGPL 3.0

Cherry Studio

AI Assistants

51,521

All-in-one AI desktop client with 300+ assistants and multi-model support

View details
89
Repo Health
84
Technical
71
Dependency
Built with
TypeScript99%
Updated today
TypeScript
97%
Other

GrowthBook

Developer Tools · Analytics · Monitoring

8,299

Open source feature flags, A/B testing, and warehouse-native experimentation that queries your existing data infrastructure—no data movement required.

View details
92
Repo Health
85
Technical
63
Dependency
Built with
TypeScript97%
Updated yesterday
TypeScript
76%
Other

Joplin

Note Taking

56,257

The privacy-first, open-source note-taking app with end-to-end encrypted sync, AI assistance, and a powerful plugin ecosystem across every platform.

View details
93
Repo Health
87
Technical
61
Dependency
Built with
TypeScript76%
JavaScript14%
Updated yesterday
Java
59%
Apache 2.0

Kestra

Devops · Data Engineering · Automation

28,007

Event-driven orchestration platform for data, AI, and infrastructure workflows — define everything in YAML, run anywhere at scale.

View details
94
Repo Health
81
Technical
72
Dependency
Built with
Java59%
TypeScript25%
Vue15%
Updated yesterday
TypeScript
71%
Other

LogChimp

Marketing · Product Management

1,123

Collect customer feedback, prioritize features with upvotes, and build transparent product roadmaps — fully self-hosted and open source.

View details
83
Repo Health
77
Technical
73
Dependency
Built with
TypeScript71%
Vue27%
Updated yesterday
TypeScript
92%
Other

n8n

Automation · No Code Platforms

203,555

Code when you need it, UI when you don't — the workflow automation platform built for technical teams who refuse to choose.

View details
95
Repo Health
87
Technical
66
Dependency
Built with
TypeScript92%
Updated today
TypeScript
97%
MIT

NewsNow

Bookmarks Archiving

21,642

Self-hostable news aggregator with an elegant column layout, GitHub OAuth, adaptive scraping intervals, and seamless Cloudflare D1 or SQLite persistence.

View details
66
Repo Health
74
Technical
72
Dependency
Built with
TypeScript97%
Updated 2 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search