A powerful, feature-rich in-memory key/value caching library for Elixir with support for transactions, fallbacks, and expirations.
Cachex is an in-memory key/value caching library for Elixir designed to enhance application performance by storing frequently accessed data. It solves problems like redundant computations and database load by providing a fast, feature-rich caching layer with support for expirations, transactions, and distribution. Developers use it to reduce latency and improve scalability in Elixir applications.
Elixir developers building high-performance, scalable applications that require efficient data caching, such as web servers, APIs, or real-time systems. It's particularly useful for teams needing advanced caching features like transactions, distribution, or proactive warming.
Developers choose Cachex for its comprehensive feature set, including transactions, asynchronous writes, and node distribution, all while maintaining high speed and an idiomatic Elixir API. Its opt-in design ensures minimal overhead, making it a flexible and powerful alternative to basic caching solutions.
A powerful caching library for Elixir with support for transactions, fallbacks and expirations
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The README highlights it as 'extremely fast' with benchmarks available using Benchee, including configurable tests for compressed and transactional scenarios.
Includes time-based expirations, transactions, asynchronous writes, distribution, and more, all listed as key features with examples in the advanced section.
All advanced features are optional and disabled by default, allowing developers to enable only what they need without unnecessary overhead, as stated in the philosophy.
Supports idiomatic cache streaming and batched operations, integrating seamlessly with Elixir's concurrency model and standard libraries, as shown in the basic and advanced examples.
Primarily an in-memory store, so data is volatile and can be lost on application crashes unless syncing to filesystem is enabled, which requires extra setup and is not default.
Enabling advanced features like distribution or proactive warming involves additional configuration and understanding of Elixir's distributed systems, which can be daunting for less experienced teams.
For basic caching, the extensive feature set might introduce unnecessary complexity and resource usage compared to lighter alternatives like ETS, as features are opt-in but still add cognitive load.