There is no concept of best in the TeX world.
As mentioned in the comments, most active key-value handling packages are pgfkeys
and the l3keys
. The latter is also inspired by pgfkeys
however it requires a minimum level of LaTeX3 knowledge which might be a bit baffling for newcomers since it doesn't have a comprehensive introduction and manual (yet!).
pgfkeys
on the other hand is pretty straightforward and has a very very comprehensive description placed within the graphics package TikZ/PGF manual (hence the name pgfkeys
which TikZ uses extensively).
Both packages are pretty matured and can handle pretty complicated tasks.
Personally I would suggest starting with pgfkeys
if compared the two. However, if a minimal L3 knowledge is present they are more or less equivalent in terms learning curve.
Even I use pgfkeys
mostly and extensively, my personal favorite is yax
which is from one of my favorite manual writers Paul Isambert. Yax gives a more Pythonic dictionary-based attribute parameter syntax which is not very common in TeX universe but once you get a hold of it, it really pays off. Though it might not be the most general or the most up-to-date it still gets the job done.
keyreader
and I use another option as well. Horses for courses - asking which horse you'd suggest entering into an arbitrary race isn't a useful question. Which race? A minimal example document which shows what you are trying to do would greatly improve your question and the quality of answers.expl3
and itsl3keys
seems also plausible; and it's going to be the “main future” of LaTeX. In a general case, I would personally choose that, andpgfkeys
in second place because I like the easiness and flexibility to define new keys.keyval
andxkeyval
a nightmare to use in comparison with bothpgfkeys
and, expecially,l3keys
. I never did get to grips with them and am greatly relieved thatl3keys
andpgfkeys
have come along so I may never have to. I findl3keys
by far the easiest for complex stuff andpgfkeys
by far the easiest for simple stuff. But I would mainly usepgfkeys
orl3keys
based on what I was doing - if it is TikZ or something similar,l3keys
becomes at least a bad dream, andpgfkeys
makes much more sense. But my kilometres have evidently differed from yours ;).