Arduino communication with QGroundControl over MAVLink

Im working on a UAV using an ESP32. I want to use QGroundControl but it uses MAVLink to communicate. As far as i understand i only need to implement MAVLink into my UAV code and send messages to my computer. My problem is everything ive found so far uses an arduino to communicate with a Pixhawk which then talks to the groundcontrol station. I dont want the extra weight (and cost) of the extra fight controller and it defeats the purpose of building my own flightcontroller.
So my question is if its possible to implement MAVLink into my arduino code to communicate directly with a program like QGroundControl. And if so, is there maybe already an implementation for Arduino?