I'm not 100% sure the GPIO_Driver needs to be "created".
There are no class functions and procedures but there are also no properties.
So you might get away with not creating the object and just using the functions as is.
Then the problem with /dev/mem.
You say you don't want to give pi SUDO rights or run your program as root.
But... you are trying to access /dev/mem. THAT's the entire memory space. You would need to have
full access to ALL that memory. Running without it you have no way to write to /dev/mem. So either you give permission or you don't use /dev/mem. Simple as that.
In the link Joan suggest using /dev/gpiomem. This is a separate entryway to the gpio pins without giving access to the full /dev/mem memory. But that doesn't work in the examples where you do want to write to /dev/mem. The
answer of Karl in that link explains it in more detail.
On my pi the user pi was automatically added to the group gpio. So I didn't have to add it.
The first example (where the files to /sys/class/gpio are created) is for access to the pins for non-root users. For direct pin access via /dev/mem you need to have the correct permissions (which user pi default doesn't have). Karl explains that in his answer but it is not advisable as you already have found on the net.
I'm not sure if you can do something directly with /dev/gpiomem itself but I haven't found much about that.