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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions