Skip to content

Releases: whitfin/cachex

v4.1.1

Choose a tag to compare

@whitfin whitfin released this 11 Nov 16:58

Cachex v4.1.1 is a patch release to resolve a couple of issues with the recent prune/3:

Fixes:

  • Fixes an issue with prune/3 running on remote notes
  • Fixes an incorrect interval in the pruning documentation

Improvements:

  • Updated repository and CI/CD builds to target latest Elixir and OTP versions

Please do not hesitate to file issues and/or provide your feedback/suggestions!

v4.1.0

Choose a tag to compare

@whitfin whitfin released this 20 Apr 22:36

Cachex v4.1.0 is a minor release focused around adding support for $callers to match the Task module.

Fixes:

  • Fixed a typo in the documentation for cache expirations
  • Fixed an incorrect type specifications in Ring routers
  • Fixed an invalid get_and_update/4 return type

Features:

  • Added support for $callers to all user facing execution contexts

Improvements:

  • Added an extremely minor performance improvement when notifying hooks
  • Updated repository formatters to use 100 character widths rather than 80 (it's 2025!)

Please do not hesitate to file issues and/or provide your feedback/suggestions!

v4.0.4

Choose a tag to compare

@whitfin whitfin released this 21 Mar 23:24

This is small release to fix a couple of issues with caching.

Fixes:

  • Fix incorrect documentation on Cachex.fetch/4
  • Fix an issue when LRU checking against a missing key
  • Resolve an issue with long running proactive warmers

Please file an issue if there are any further problems!

v4.0.3

Choose a tag to compare

@whitfin whitfin released this 24 Nov 03:01

This is small release to fix an issue with router node monitoring.

Fixes:

  • Resolve an issue with node exclusions inside Ring routers

Please file an issue if there are any further problems!

v4.0.2

Choose a tag to compare

@whitfin whitfin released this 14 Oct 03:36

This is a very small release to fix some invalid formats when starting a cache.

Fixes:

  • Added support for various Supervisor shorthands

Please feel free to report any issues!

v4.0.1

Choose a tag to compare

@whitfin whitfin released this 07 Oct 21:48

This is a very small documentation release for the migration guide.

Improvements:

  • Add documentation about :state -> :args in hook definitions.

Please continue to report any other documentation changes!

v4.0.0

Choose a tag to compare

@whitfin whitfin released this 30 Sep 04:53

Cachex v4.0.0 is a large release which includes many new features and breaking changes.

Please see the migration guide if you need any assistance in upgrading your application to the latest version.

If you're interested, you can read the corresponding blog post.

Fixes:

  • Fixed another round of Dialyzer warnings
  • Fixed a case where the Courier service could hang
  • Fixed a case where hooks were not storing modified state
  • Fixed an issue where fetching could run multiple times simultaneously
  • Fixed an issue where Janitor runs would broadcast hooks twice

Features:

  • Added new Cachex.Limit.Accessed hook to enable LRU caching
  • Added new Cachex.Router behaviour and functionality
  • Added new Cachex.Router.Ring router for distributed caches
  • Added new Cachex.prune/3 to enable manual cache pruning
  • Added new Cachex.warm/2 to enable manual cache warming
  • Added new lazy initialized to cache janitors
  • Added new query support inside Cachex.Query
  • Combined Cachex.count/2 and Cachex.size/2
  • Rewritten all documentation for readability

Improvements:

  • Added new service to centralize provisioning of hooks
  • Added support for provisioning warmers and services
  • Added support for :ordered tables in cache options
  • Cleaned up the Janitor service for improved performance
  • Cleaned up limit application and removed policies
  • Cleaned up vague naming inside cache entries
  • Cleaned up various poor naming choices for options
  • Enabled local only actions to be called with local: true
  • Enabled custom name registration for cache warmers
  • Enabled triggering cache hooks from cache warmers
  • Raised the minimum Elixir requirement to v1.7
  • Reduced documentation noise from internal modules
  • Removed all use of :qlc with simple :ets operations
  • Removed several deprecated APIs (finally!)
  • Removed unnecessary macro complexity from Cachex.Router
  • Renamed Cachex.dump/2 to Cachex.save/3
  • Renamed Cachex.load/2 to Cachex.restore/3
  • Updated CI infrastructure and tested versions
  • Updated test infrastructure, structure and helpers
  • Updated benchmarking suite for better performance metrics

As this is a new major release, there may be subtle bugs and issues which snuck in.

Please do not hesitate to file issues and/or provide your feedback/suggestions!

v3.6.0

Choose a tag to compare

@whitfin whitfin released this 06 Feb 19:25

Cachex v3.6.0 is a small feature release with improvements to fallback caching.

Fixes:

  • Fixed a wrong definition in TTL documentation.

Improvements:

  • Added support for setting expiration inside fetch/4.
  • Added support for setting expiration inside get_and_update/4.
  • Removed unnecessary macros in cache action handling.
  • Simplified evented vs. scheduled LRW interfaces.
  • Updated documentation alongside fetch/4 changes.

Please let me know if you find any issues or have any suggestions!

v3.5.0

Choose a tag to compare

@whitfin whitfin released this 10 Jan 07:28

Cachex v3.5.0 is a small feature release containing many quality-of-life changes inside the repository and API.

Fixes:

  • Corrected several documentation typos in public documentation.
  • Fixed a missing import in Cachex.Warmer macros.
  • Fixed fetch/4 to correctly represent results across processes.

Improvements:

  • Added support for non-blocking cache warmers during startup.
  • Added support for passing inner stacktraces from calls to fetch/4.
  • Applied official formatting tools to the repository (mix format).
  • Optimized hook/policy interfaces and removed unnecessary APIs.
  • Optimized Cachex.Policy.LRW handling to lower monitoring overhead.
  • Updated all dependencies to latest versions.
  • Updated CI builds against latest versions.

Sorry this one took so long to package up and ship out, please let me know if you find any issues or have any suggestions!

v3.4.0

Choose a tag to compare

@whitfin whitfin released this 02 Jun 17:46

Cachex v3.4.0 is a very small set of changes with a couple of fixes and improvements.

Fixes:

  • Corrected several documentation typos in public documentation.
  • Corrected various specifications causing dialyzer warnings.
  • Fixed a bunch of deprecation warnings raised in Elixir v1.5 through v1.12.

Improvements:

  • Added support for :trusted flags when loading cache backups.
  • Allowed Elixir to manage :applications automatically.
  • Migrated away from Travis CI to Github Actions.
  • Raised the minimum Elixir requirement to v1.5.

Please make sure to file any issues found!