Releases: whitfin/cachex
v4.0.3
v4.0.2
v4.0.1
v4.0.0
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
andCachex.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
toCachex.save/3
- Renamed
Cachex.load/2
toCachex.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
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
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
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!
v3.3.0
Cachex v3.3.0 is a minor release with a couple of new features and various improvements.
Fixes:
- Fixed a missing application in the project configuration.
- Fixed an incorrect type specification in
expiration
records.
Improvements:
- Added latest Elixir/OTP builds to the CI matrix.
- Added new signatures for compatibility with latest
Supervisor
standards. - Improved some type specifications for Dialyzer.
- Improved consistency of cache warmer initialization.
- Improved documentation around expiration options.
- Updated all dependencies to their latest versions.
Please make sure to file any issues found!
v3.2.0
Cachex v3.2.0 is a minor release with a couple of new features and various improvements.
Fixes:
- Fixes a broken return signature in
execute/3
. - Various fixes for typespecs and documentation.
Improvements:
- Added new Elixir/OTP versions to CI builds.
- Added some missing benchmark functions.
- Introduced the ability to import to a cache via
import/3
. - Introduced the ability to enable ETS table compression.
- Updated all dependencies to their latest versions.
Please make sure to file any issues found!