Technically it's a driver, but in practice I'm just talking over a chip via SPI. It's weird and quirky SPI - I think this chip originally just had an I80 interface (Intel 8080 protocol) and then they added a SPI frontend that internally translates to I80. That means you have to SPI with I80-ish chip select semantics etc. which is not what the SPI APIs in the ESP-IDF or Arduino frameworks do by default (leading to things not working unexpectedly), so I had to "bit-bang" CS. Aside from quirks like this it was pretty simple and just following the datasheet to stream the right commands and data.
One thing that made it functionally worth it (aside from the hacking fun and learning) is that E-ink panels perform best if run at a particular drive voltage ('VCOM') that is determined at manufacturing time and attached as a little sticker to the flex cabling sticking out of the unit. I stumbled upon this while reading various data sheets, and as a result my custom code will set the correct voltage, driven by config. If I had used a random lib I probably wouldn't have encountered this.
That said, I've found there's very cool projects out there that go a level deeper. Instead of using an EPD controller like the IT8951 as a convenience, this project runs E-ink panels directly off a MCU by implementing the waveforms directly: https://github.com/vroland/epdiy
After reading the panel datasheets I find that approach quite interesting, and am considering doing fresh Rust impl of that as well.
The Spotify project looks cool! I dig the dithering style. Would like to try a multi-color panel as well.