Contrib-johnny-five vs contrib-gpio

Just briefly looking at the write ups for contrib-johnny-five and contrib-gpio, they look very similar. Can anyone experienced with both comment on the differences?

the GPIO node directly controls a Pi GPIO. Johnny-Five goes further and is designed to make it easy to control GPIO on an Arduino.

Ah, it now also supports Johnny-Five - I hadn't realised that.

Now I also see node-arduino. They all use the firmata method but other than that I'm not sure yet what the differences are.

I managed to get node-Arduino working except for a couple minor issues. But I cannot get contrib-gpio or contrib-johnny-five working on my rPi Zero W (or w7x64). Both libraries have problems with serialport.node & missing bindings file whereas node-Arduino works (it also uses serial comms). I still have not figured out the difference between the two, some how-to guides talk about Johnny five but then install the contrib-gpio library.

Have you ensured you have run
sudo apt-get install build-essential

To ensure you have the tools required to build and compile those nodes?

That was one of the first contributed nodes I seem to remember so things may have overtaken it over the years.