fast-memoize is a JavaScript library for memoization, designed to speed up programs by caching results of expensive function calls and reusing them for repeated inputs. It supports memoizing functions with N arguments, and can use a custom cache implementation or a custom serializer to control how arguments are turned into cache keys.
Project status
- Maintenance status: Not clearly actively maintained as of 2026-08-13, since the most recent published updates appear to be v2.5.2 on 2020-03-04, with the upstream repo push noted on 2023-02-19 but no corresponding newer update evidence in the provided timeline.
- Update cadence: Updates have been sporadic with long gaps (for example, 2017-2018, then 2018, then 2020), suggesting an infrequent release pattern rather than steady iteration.
AI summary generated
Recent updates
v2.5.2
v2.5.2 does not include publisher release notes, but the diff shows the main changes are TypeScript-related: updated type definitions and a revised TypeScript typings test strategy. The biggest potential breaking change is in the exported typings, specifically the Cache interface shape.
Breakingv2.4.0
Release v2.4.0 adds TypeScript typings for fast-memoize, including a new declaration file and a small TypeScript compilation test. The package metadata and test scripts were updated so that `npm test:all` now also runs a `tsc` check against the new typings.
Featuresv2.3.2
Release v2.3.2 was published on 2018-03-12, but no release notes were provided by the publisher. Because the changelog content is missing, this release cannot be analyzed for developer-impacting API changes, behavior changes, fixes, or migration steps from the provided data.
v2.3.0
v2.3.0 is presented as a performance-focused release ("Faster") with benchmarking changes. The actual code change primarily optimizes cache hit/miss checks and adjusts what counts as a primitive argument, which has behavioral side effects not described in the release notes.
Breakingv2.2.8
Release v2.2.8 is primarily described as a README update adding a Gotchas section. However, the actual code changes also introduce new public strategy exports and refactor strategy binding logic, plus there are notable dependency and tooling changes in the project.
Featuresv2.2.7
Release v2.2.7 appears to be a syntax-only change, targeting compatibility with older JavaScript environments. The release notes state that all ES2015+ usage is removed, and the diff shows elimination of ES2015 constructs such as arrow functions and const.
v2.2.3
v2.2.3 primarily targets ES5 compatibility without requiring transpilation. The core implementation was rewritten to remove modern JavaScript syntax (const, let, arrow functions, rest/spread, and class syntax), while keeping the same exported memoize API surface.
v2.2.1
Release v2.2.1 is presented as a documentation-only update (“Fix on README”). The actual diff changes the required custom cache interface described in README.md by removing the `delete` method from the list of required functions.
v2.2.0
Release v2.2.0 refactors the library to ES2015+ syntax, adds a new util.inspect-based serializer to the benchmarks, and removes a cache.delete method from the default cache implementation. The bulk of the code diff is stylistic modernization, plus a small functional change to the default cache class.
BreakingFeaturesv2.1.1
v2.1.1 is a small documentation-focused release that updates the README to show a benchmark GIF instead of a static PNG. The only other functional change visible in the diff is the CI configuration adjustment in .travis.yml.
Featuresv2.1.0
Release v2.1.0 includes a performance-focused change, claiming that `fast-memoize.js` is now the fastest memoization library. No API, breaking, security, or migration details are provided in the release notes.