Arduino as USB device - HID/mass storage

Hi, I am looking for a convenient fast way to exchange data between PC and MCU.
The best way is obviously USB but it is quite complex and requires driver level programming using some advanced USB fast protocols. Maybe someone knows example of how to make Arduino a mass storage device or some device exchanging large amount of data like 0.3-3MB/s
Serial interface seems a bit slow. I wish they made one with PCIe interface. Thanks

The best way is obviously USB but it is quite complex and requires driver level programming

And programming the Arduino with USB Host shield to act like a USB device seems easier, somehow? What you b'n smok'n?

Serial interface seems a bit slow.

The Due communicates at USB speeds, not serial speeds. On at least one of the USB ports.

Arduinos with native USB ports (Leonardo, (Pro)Micro, Due, Zero, Teensy 3.X) are pretty fast at transferring data.