DispatchedTuples.jl is a very lightweight package that defines an efficient Dict/NamedTuple-like data structure that is gpu-friendly (as they are tuple-backed).
The main difference between a NamedTuple and a DispatchedTuple is that the keys are instances of types. The reason for this choice was mostly because Julia’s type system and dispatch are radically awesome.
This package is in very early development, and I would appreciate feedback on the interface and how extending it might be useful for the overall Julia ecosystem.