Neither ESP8266 nor ESP32 support USB, so what am I babbling about? No, ESP8622 did not suddenly grow a USB PHY, but cnlohr decided to implement virtual USB support using two GPIOs (12 & 13) for the D+/D- USB signals, meaning you can connect any ESP8266 module through USB, or even update the firmware through USB without external hardware, apart from a single extra resistor.
The source code is available on espusb repo on github. Please note that the code is currently work in progress, and USB implementation currently only works at 1.5 Mbit/s, with potentially future support for 12 Mbit/s.
That’s the demo, and an explanation about the design process.