Judy Arrays (2004)
judy.sourceforge.net
judy.sourceforge.net
https://youtu.be/N6rhECUjdaI?t=3043
AFAIK nobody uses them because of the (unfounded) patent fears.
ART indexes are a modern implementation of radix trees / tries that is better.
"ART index software radix tree" works (the A stands for adaptive).
Consider using this if you need to intersect very large data sets that otherwise would take a prohibitive amount of time to even insert into an SQL database (with or without an index) or otherwise even handle in a script language.
What is an LSM?
How Judy arrays work and why they are so fast (2002) - https://news.ycombinator.com/item?id=20820795 - Aug 2019 (13 comments)
Performance Improvements Using Judy Arrays - https://news.ycombinator.com/item?id=5639013 - May 2013 (51 comments)
Judy arrays are patented - https://news.ycombinator.com/item?id=5043667 - Jan 2013 (56 comments)
Judy Arrays - https://news.ycombinator.com/item?id=3675759 - March 2012 (9 comments)
A 10-minute description of how Judy arrays work and why they are so fast - https://news.ycombinator.com/item?id=1419526 - June 2010 (13 comments)
Judy, an efficient sparse dynamic array implementation - https://news.ycombinator.com/item?id=859336 - Oct 2009 (4 comments)
("Those who do not know judy1 are doomed to reinvent it." apropos Roaring Bitmaps)
[1] https://nothings.org/computer/judy/ (2003)
The latter might be a more interesting jump-off point for experimentation than this massive library.
[0] https://en.wikipedia.org/wiki/Judy_array
[1] https://code.google.com/archive/p/judyarray/
[2] https://github.com/JanX2/judy-arrays (github export of previous)
This doesn't quite answer your question, but if Roaring fits your case you should use it instead of Judy1 even if have Judy1 available.
Why? Assuming you have no need for the specialized whole set union and intersection operations. At least the C roaring library only supports 32-bit keys which is a hard blocker vs judy1 for some applications.
It was quite fast even on 50 MHz 486-DX2.