C vs. Ruby+YJIT: I2C Edition

I recently added a bit-bang I2C implementation to the lgpio gem. “Bit banging” means you don’t use the I2C hardware built into the SBC. Instead, you manipulate a pair of regular GPIO, as fast as you can, to mimic what the hardware does. This sounds like a bad idea. Why would you even do it? One use is if you need multiples of a device (eg. 4 of the same sensor) but they all have the same I2C…