Skip to content

bug: comparison.md claims type preservation that doesn't exist #74

@27Bslash6

Description

@27Bslash6

Description

docs/comparison.md contains claims about cachekit's type handling that are contradicted by the competitive test suite.

Specific Issues

  1. The comparison table (line ~46) includes a note about MessagePack tuple→list conversion but frames it as a Redis-only issue. It also happens in L1-only mode (backend=None).

  2. Section "Why cachekit wins" for single-process apps claims "Same ~50ns performance (in-memory L1 cache)" without disclosing that L1 mode serializes data (unlike lru_cache which stores raw objects).

  3. The "pluggable serializers (v1.0+)" note implies this will be fixed in a future version, but the issue is architectural — L1 serializes regardless of serializer choice.

Evidence

tests/competitive/test_head_to_head.py — 50 tests documenting actual behavior across 4 libraries.

Suggested Fix

Update comparison.md to honestly document:

  • cachekit serializes in ALL modes (L1 and L2) for consistency
  • This means tuples→lists, frozensets→lists even with backend=None
  • The tradeoff: consistent behavior across backends vs type preservation
  • cachekit's actual advantages: unhashable args, TTL, async, metrics, upgrade path

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions