Cachex Versions Save

A powerful caching library for Elixir with support for transactions, fallbacks and expirations

v3.0.2

6 years ago

This is a patch release to add a couple of minor usability improvements:

Improvements:

  • Cache warmers will now crash instead of silently ignoring errors
  • Compiler warnings for @deprecated are now silenced on Elixir < 1.6

As ever, please report any issues found!

v3.0.1

6 years ago

This is a minor release to fix a small issue with LRW policies:

Fixes:

  • Corrected an issue with a missing function declaration in the LRW policy

Improvements:

  • Added a new utility to list running cache services
  • Added a new utility to locate a running cache service

As ever, please report any issues found!

v3.0.0

6 years ago

Cachex v3.0.0 contains many breaking changes to make way to make improvements and new features to the library. Please see the migration guide for a list of all breaking changes.

Fixes:

  • Corrected an issue ignoring invalid Hooks
  • Corrected an issue with timeouts being ignored on asynchronous hooks
  • Corrected several issues with statistics gathering
  • Corrected several documentation issues

Improvements:

  • Added a new amount argument to the incr/4 and decr/4 signatures
  • Added a new explicit fetch/4 signature
  • Added a new put_many/3 signature to allow batch writes
  • Added a new parent spec module to control global functions
  • Added the ability to whitelist actions to listen on inside Hooks
  • Enabled complex cache streaming using match specifications
  • Integrated @unsafe to remove internal macros
  • Introduced synchronized fallbacks to optimize reactive caches
  • Janitors are now enabled by default
  • Migrated Hook options into the module behaviour
  • Migrated set/4 to put/4 and deprecated set/4
  • Normalized statistics gathered by Cachex.Stats
  • Proactive cache warming via Cachex.Warmer
  • Replaced internal state with records rather than maps
  • Replaced options with easier to understand counterparts
  • Restructured to a new internal services tree
  • Surfaced all documentation in the generated docs
  • Updated all dependencies to their latest versions

Please make sure to file any issues found and they'll be addressed as soon as possible!

v2.1.0

7 years ago

This release contains some minor changes, including the addition of new disk-oriented commands for dumping and reloading a cache.

Fixes:

  • Corrected an issue with the keys/2 typespec
  • Corrected a small performance issue in transaction locks

Improvements:

  • Added a new dump/3 command to dump a cache to a local file
  • Added a new load/2 command to load a local file into a cache
  • Updated all dependencies to latest
  • Updated and conformed to latest Credo configuration

Please make sure to file any issues found and they'll be addressed as soon as possible!

v2.0.2

7 years ago

This is a very small update to push out compatibility with Elixir v1.4 to ensure we cover any compiler warnings left over from the v1.3 days. Changes are minimal and there are zero behaviour changes.

Improvements:

Updated for compatibility with Elixir v1.4 Updated all dependencies to their latest versions

v2.0.1

7 years ago

This is a very small release to get #91 out onto Hex. Changes are minimal and there is no reason to update unless you require the changes from the aforementioned PR.

Improvements:

  • Added the ability to use :commit Tuple syntax in get_and_update/4
  • Updated all dependencies to their latest versions

Please make sure to file any issues found and they'll be addressed as soon as possible!

v2.0.0

7 years ago

Cachex v2.0.0 contains several breaking changes to make way to make improvements and new features to the library. Please see MIGRATE.md for a list of all breaking changes.

Fixes:

  • Corrected an issue with invalid Hooks being ignored quietly
  • Corrected several documentation issues
  • Corrected several specification issues
  • Corrected several test issues on Windows machines

Improvements:

  • Added a new :commands option to allow custom commands on a cache
  • Added a new :limit option to cap a cache at a given limit
  • Added a new :record option to inspect/2
  • Added a new touch/3 function to touch a keys write time
  • Added a new defaction macro to automatically notify cache hooks
  • Added a new invoke/4 function to execute custom commands
  • Added a new LRW eviction policy
  • Added new benchmarking scripts to the project
  • Created a new Actions module to control raw ETS interaction
  • Error Tuples now contain atom error messages
  • Implemented CI builds for Windows systems
  • Improved the test suite with new test modules
  • Integrated Eternal v1.1 Supervision functionality
  • Migrated Hooks from GenEvent to use GenServer
  • Optimized fallback invocations
  • Optimized transactions for 5x speed gains
  • Optimized usage of anonymous functions
  • Refactored several options to be more idiomatic
  • Removed Mnesia in favour of local ETS tables
  • Restructured Hook messages for better pattern matching
  • Updated all dependencies to their latest versions

Please make sure to file any issues found and they'll be addressed as soon as possible!

v1.2.2

7 years ago

This is a very small release to remove compiler warnings against OTP 19.

Fixes:

  • Stripped out :random in favour of :rand

Improvements:

  • Added Elixir v1.3.2 to the Travis CI builds
  • Added Erlang OTP 19 to the Travis CI builds
  • Updated several dependencies

v1.2.1

7 years ago

This is a very small release to remove compiler warnings against Elixir v1.3.0.

Fixes:

  • Stripped out Enum.group_by/3 in favour of Enum.group_by/2

Improvements:

  • Added Elixir v1.3.0 to the Travis CI builds
  • Updated several dependencies

v1.2.0

7 years ago

Cachex v1.2.0 contains large performance improvements in the way we handle communication with the cache, which has a result of roughly a 3x speedup on all commands (sweet!).

Fixes:

  • Corrected an issue with the README examples
  • Corrected an issue with Cachex tasks not accepting options
  • Corrected several issues in test cases being unreliable

Improvements:

  • Added an application callback to initialize Cachex pre-requisites
  • Added a new wrapper to handle table states
  • Added a new start interface to enforce the :name option
  • Added a new interface for tasks to run in a Cachex context
  • Migrated test code to a standard structure
  • Migrated the inspector to run in-process
  • Migrated to using ETS to store state rather than a GenServer
  • Removed a dependency on :gen_delegate
  • Removed all Cachex task wrappers
  • Removed unnecessary Cachex Macro modules

Deprecations:

  • Using the :async option is now deprecated
  • Using the :timeout option is now deprecated
  • Using start_link/2 and start/1 are now deprecated

Please make sure to file any issues found and they'll be addressed as soon as possible!