{
  "slug": "xor-filter",
  "term": "XOR filter",
  "aliases": [
    "xor membership filter"
  ],
  "definition": "An XOR filter is a static approximate-membership structure whose lookup compares a key fingerprint with the XOR of shared array entries.",
  "note": "Construction uses the complete key set; singleton peeling and reverse assignment establish member equations. A failed peel requires another construction attempt, not a negative membership answer. [xor-paper] The no-false-negative property assumes a successful, unchanged representation and consistent queries.",
  "related": [
    "binary-fuse-filter",
    "bloom-filter",
    "ribbon-filter",
    "sstable"
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-16",
  "citations": [
    {
      "id": "xor-paper",
      "title": "Graf and Lemire. Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters. ACM JEA 25 (2020). DOI: 10.1145/3376122.",
      "url": "https://arxiv.org/abs/1912.08258v3",
      "accessed": "2026-10-16"
    },
    {
      "id": "hesela-xor",
      "title": "Hesela. Static filters and reproducible fixed-equation examples.",
      "url": "https://hesela.com/analyses/bloom-filters-lsm-read-cost/#xor-static",
      "accessed": "2026-10-16"
    }
  ],
  "provenance": [
    "The linked fixed-equation example is synthetic and does not estimate collision rates. [hesela-xor]"
  ]
}
