gitwtfhub

wtf is yume-pdq?

eternal-flame-ad/yume-pdq — explained in plain English

Analysis updated 2026-07-20 · repo last pushed 2026-03-21

8RustAudience · developerComplexity · 4/5MaintainedSetup · hard

TL;DR

A fast image-hashing library that checks user-uploaded images against a database of known harmful content in real time. It fingerprints images and searches 10 million known hashes in about 20 milliseconds without storing originals.

Mindmap

mindmap
  root((repo))
    What it does
      Fingerprints images
      Searches known hash databases
      Checks all rotations
      100 percent recall
    Tech stack
      Rust
      AVX512 CPU instructions
      Vulkan GPU
    Performance
      20ms per search
      Thousands of FPS
      Microseconds per hash
    Use cases
      Screen social uploads
      Scan live video streams
      On-device mobile screening
    Audience
      Trust and safety teams
      Platform engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Screen user-uploaded images on a social media platform before they reach other users.

REASON 2

Scan live video streams or newly uploaded video files in near real-time.

REASON 3

Run on-device image screening on mobile phones before uploading content.

REASON 4

Add a fast harmful-content check to an existing image-processing pipeline.

What's in the stack?

RustVulkanAVX512

How it stacks up

eternal-flame-ad/yume-pdqoop7/rquickshare-xtrag1c/crossandra-rs
Stars888
LanguageRustRustRust
Last pushed2026-03-212026-05-152026-03-02
MaintenanceMaintainedMaintainedMaintained
Setup difficultyhardeasyeasy
Complexity4/52/52/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires Rust build toolchain plus optional Vulkan SDK for GPU acceleration and specific CPU instruction set support for full performance.

The explanation does not mention a specific license, so the licensing terms are unknown.

Wtf does this do

yume-pdq helps platforms quickly check user-uploaded images against a database of known harmful content, such as child exploitation material. It implements PDQ, a hashing method originally from Meta's ThreatExchange project, which creates a compact fingerprint of an image so you can compare images without storing the originals. The library is designed to slot into an existing image-processing pipeline with minimal overhead, adding only microseconds of CPU time per request. The project focuses on making both the hashing and the matching extremely fast. It uses specialized CPU instructions (like AVX512) and can optionally offload the matching work to a GPU via Vulkan. The end result is that on a modern server CPU, it can hash an image and search a database of 10 million known hashes in about 20 milliseconds. It guarantees 100% recall, meaning it will never miss a matching hash, and it automatically checks all eight rotations and reflections of an image in a single pass. A trust-and-safety team at a social media company would use this to screen uploads in near real-time before they reach other users. Because it can process video frames at thousands of frames per second on a single server, it could also be used to scan live video streams or newly uploaded video files as they arrive. It also supports running on mobile hardware, tested on Apple Silicon and recent Google Pixel phones, so the same screening logic could run on-device if an app wanted to check images before uploading them. A few design choices are notable. The project deliberately avoids vendor lock-in, supporting multiple hardware vendors rather than tying itself to one company's chips. It also makes a specific accuracy tradeoff: the optimized hashing code is fast and statistically compatible enough for matching, but the README explicitly warns that you should not use these optimized hashes to populate a shared external database. They're meant for real-time screening, not for long-term hash storage in an external system. The code is also hardened against certain memory-safety attacks, with optional build flags that add security protections with under a 10% performance cost.

Yoink these prompts

Prompt 1
Help me integrate yume-pdq into an existing Rust image-processing pipeline to screen uploads against a database of 10 million known harmful content hashes.
Prompt 2
I want to use yume-pdq to scan video frames at thousands of FPS on a single server. Walk me through setting up the Vulkan GPU acceleration for matching.
Prompt 3
Show me how to build yume-pdq with the optional security hardening flags enabled and explain the performance tradeoff.
Prompt 4
I need to run yume-pdq on Apple Silicon for on-device mobile screening. Help me configure the build for that target.

Frequently asked questions

wtf is yume-pdq?

A fast image-hashing library that checks user-uploaded images against a database of known harmful content in real time. It fingerprints images and searches 10 million known hashes in about 20 milliseconds without storing originals.

What language is yume-pdq written in?

Mainly Rust. The stack also includes Rust, Vulkan, AVX512.

Is yume-pdq actively maintained?

Maintained — commit in last 6 months (last push 2026-03-21).

What license does yume-pdq use?

The explanation does not mention a specific license, so the licensing terms are unknown.

How hard is yume-pdq to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is yume-pdq for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.