Python is slow ! Python can't access bare metal !
You often hear theses assumptions? Theses limitations can be surpassed by Python extensions written in C. However, according to my personal experience, doing this by leveraging C may yield to several issues (e.g., memory management).
C Foreign Function Interface for Python (a.k.a., CFFI) allows you to easily write Python extensions. One of the main aims of CFFI is to wrap C libraries. Along the same lines, it may also be used for performance enhancement.
Next we are going to the next level, let's wrap all the Vulkan API! Vulkan is the new 3D API and is not a piece of cake. To see the real advantage of CFFI, a side by side comparison between two Python modules is going to be presented:
- CVulkan is a Vulkan wrapper written fully in C, it's a classic C extension for Python
- vulkan is its CFFI counterpart without any C written, only Python
I have developed two versions of Vulkan wrapper (one in a pure C, and the second by leveraging CFFI) and I can assure you that CFFI is way better!