A high-performance pure Ruby client for memcached servers with thread safety, failover, and OpenTelemetry support.
Dalli is a high-performance pure Ruby client library for connecting to memcached servers. It provides a fast, reliable interface for caching operations in Ruby applications, supporting features like failover, thread safety, and fine-grained serialization control. The library solves the need for a robust, production-ready memcached client that integrates well with modern Ruby development practices.
Ruby developers building applications that require high-performance caching with memcached, particularly those working on web applications, APIs, or distributed systems where caching is critical for performance.
Developers choose Dalli for its pure Ruby implementation that delivers excellent performance without native extensions, comprehensive production features like failover and OpenTelemetry integration, and its maintained status as a reliable, well-documented solution in the Ruby ecosystem.
High performance memcached client for Ruby
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Pure Ruby implementation optimized for speed without native extensions, ensuring fast memcached operations and easy deployment across Ruby environments.
Includes automatic failover between memcached instances and thread-safe operation via connection pools, making it robust for multi-threaded, distributed applications.
Automatically instruments operations with OpenTelemetry for distributed tracing when the SDK is present, providing cache performance insights with zero overhead when disabled.
Supports namespaces, custom serializers like JSON for security, compression, and SSL/TLS, allowing fine-grained control over caching behavior.
Uses Ruby's Marshal for serialization by default, which can lead to remote code execution if caching untrusted data, requiring explicit configuration with safer serializers.
Requires separate setup and maintenance of memcached servers, adding operational complexity compared to embedded caching solutions or cloud-managed services.
Features like dynamic namespaces with Procs and custom serializers may have a steeper learning curve, potentially overwhelming for simple caching needs.