NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2235 most downloaded on npm
A practical functional library for JavaScript programmers.
Last release 11 months ago
10 Oct 2025
Ships fairly regularly
a new release about every 7 months
Some releases are documented
notes for 28 of 58 stable releases
2 versions withdrawn
withdrawn after publishing
12 years old
63 releases · first in 2014
upgrade guide
upgrade guide
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
upgrade guide: #3472
upgrade guide: #3472
Upgrade guide: #3453
Upgrade guide: #3453
Upgrade guide: #3415
Upgrade guide: #3415
🆕 addIndexRight 🆕 isNotNil 🆕 swap 🆕 dropRepeatsBy
🆕 addIndexRight
🆕 isNotNil
🆕 swap
🆕 dropRepeatsBy
⚠️ propEq/pathEq parameter order
Thank you to everyone who contributed to this release!
A long-overdue release with many updates, documented in #3218 .
A long-overdue release with many updates, documented in #3218.
This release patches a security vulnerability in the implementation of trim (#3212).
This release patches a security vulnerability in the implementation of trim (#3212).
Let's pretend v0.27.0 never happened. :wink:
Let's pretend v0.27.0 never happened. :wink:
Nothing published for this version
Nothing published for this version
Changes and upgrade guide: #2702
Changes and upgrade guide: #2702
Changes and upgrade guide: https://github.com/ramda/ramda/issues/2319
Changes and upgrade guide: https://github.com/ramda/ramda/issues/2319
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
See the upgrade guide for a description of changes.
See the upgrade guide for a description of changes.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
Deprecations (to be removed in v0.15.0):
Changes: https://github.com/ramda/ramda/compare/v0.13.0...v0.14.0
Removals:
R.charAt #957R.charCodeAt #957R.func #957Deprecations (to be removed in v0.15.0):
R.isNaN #988Changes:
Object.is/R.eq semantics #980@@transducer/ #1006, #1019R.and and R.or now dispatch to their respective methods if available #1017R.converge now returns a function of appropriate length #985R.converge now preserves context #1063R.differenceWith can no longer return a sparse array #982R.drop no longer returns a sparse array when given a negative count #1018R.memoize now supports functions which take objects as arguments #1039R.path now returns its second argument when given an empty path #979R.pluck now works with transducers #1013R.sort no longer performs a deep clone #1009R.where now expects all the values of the spec object to be predicates #1036Additions:
R.adjust #973R.composeL #971R.dropRepeats #1007R.dropRepeatsWith #1007R.intersperse #1043R.lensIndex #971R.lensProp #971R.mean #974R.median #974R.pipeL #971R.toString #924R.uncurryN #972R.update #973R.whereEq #1036See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
See the upgrade guide for a description of the changes.
Nothing published for this version
There are lots of breaking changes in this release (because we're keen to get things right). Thank you to our many thoughtful contributors. :beers:
Changes: https://github.com/ramda/ramda/compare/v0.8.0...v0.9.0
R.alwaysZero #594R.indexOf.from #635R.lastIndexOf.from #635R.slice.from #612R.allPredicates → R.allPass #597R.anyPredicates → R.anyPass #597R.argN → R.nthArg #638R.cloneDeep → R.clone #673R.cloneObj → R.clone #673R.every → R.all #634R.filter.idx → R.filterIndexed #639R.{foldl,reduce}.idx → R.foldlIndexed #639R.{foldr,reduceRight}.idx → R.foldrIndexed #639R.forEach.idx → R.forEachIndexed #639R.insert.all → R.insertAll #636R.invokerN → R.invoker #679R.map.idx → R.mapIndexed #639R.mapObj.idx → R.mapObjIndexed #639R.reject.idx → R.rejectIndexed #639R.repeatN → R.repeat #626 #629R.skip → R.drop #630R.skipUntil → R.dropWhile #630R.some → R.any #634R.toLowerCase → R.toLower #674R.toUpperCase → R.toUpper #674R.alwaysFalse → R.F #595R.alwaysTrue → R.T #595R.car → R.head #576R.cdr → R.tail #576R.cons → R.prepend #576R.if → R.ifElse #583R.push → R.append #611R.reduce → R.foldl #619R.reduceRight → R.foldr #619R.size → R.length #541R.__ now references a sentinel object #746R.arity now throws if first argument is greater than ten #652R.concat is now curried, op-style #687R.contains is now curried, op-style #687R.curryN is now curried #644R.eq now has Object.is semantics #730R.isEmpty now returns false when applied to null/undefined #540R.length no longer throws if applied to null/undefined #541R.length now returns NaN if applied to a value without a numeric length property #541R.memoize now works correctly when applied to a "nullary" function #613R.nAry now throws if first argument is greater than ten #654R.nthArg now supports negative offsets #638R.propOr now takes default value as first argument #658R.times now throws if given an invalid array length #589R.union is now curried 303410999a273c25c82d6ba7c94ef2dcb9588b05R.wrap now returns a curried function #741R.call #575R.dec #667R.eqDeep #718R.evolve #665R.inc #667R.init #578R.isNil #666R.mapAccumL #675R.mapAccumR #675R.negate #668There are lots of breaking changes in this release (because we're keen to get things right). Thank you to our many thoughtful contributors. :beers:
Changes: https://github.com/ramda/ramda/compare/v0.7.2...v0.8.0
Changes: https://github.com/ramda/ramda/compare/v0.7.2...v0.8.0
window.ramda with references to window.R.R.invoker #510R.xprodWith #483R.cond → R.if (use R['if'] or R.ifElse for ES3 compatibility) #518R.maxWith → R.maxBy #547R.minWith → R.minBy #547R.pickWith → R.pickBy #547R.props → R.propOf #501R.appendTo #500R.argN #519R.assoc #451R.assocPath #451R.cloneDeep #462R.commute #526R.commuteMap #526R.cond #518R.lens #459R.nth #493R.pCompose #524R.pPipe #524R.prependTo #500R.props #501R.type #490R.unapply #515Thank you to our many wonderful contributors. This release was a real team effort. :)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
added op function for converting infix to prefix
cloneObj (shallow copy)isArrayLikeop function for converting infix to prefixcurry split into curry and curryNisAtom removedeval'ed code removedCreate a new version to overcome @CrossEye's poor npm-fu.
Restored the global name ramda but kept the name R as well.
ramda but kept the name R as well.findLast, findLastIndex, and mathMod.fork to converge to reserve the name fork for other planned future use.@sig tags.reduce._slice.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →