Why is there no C API?

Why is there no C API? This would make it possible to write add-ons and games (UPBGE) in more languages.

I think the answer is something along the lines of “if you can write C, you can just edit the main source code of the program and do whatever you want without the limitations of the api”. Probably also not having enough employees at the moment to create, test, secure and maintain a new C api.

2 Likes

It’s not extensible. That’s why there are API exists. There are lot of languages that compatible with C (for example, Rust, Go, Kotlin/Native). This would make the API more attractive to more developers (and more relevant for gamedev with UPBGE).

You also do not need to maintain Python API, if you have C API. Because, Python is compatible with C, as well and maintaining of Python API could be done by community.

You found one of the few features which most likely would not even be integrated if someone had already finished it.

C/C++ Plugin API

At the moment we are not planning to accept binary plugins in Blender (which implies a C/C++ API).

Note: the pros and cons for this are quite involved and not covered in detail here yet

Source: Reference/AntiFeatures - Blender Developer Wiki

In my opinion, a C/C++ API could be useful and has the potential for more high-end extensions. At the same time, I believe there are ways to introduce closed source extensions which is against the core values of the Blender Foundations according to my understanding.

but isn’t the closed source argument false - in regards to the ‘viral’ nature of the license? At least what I always read here…
I imagine that providing a good plugin system would give too much development power out the hands of the blender foundation and possibly scatter the development focus…? But never fully understood this decision…
Because it works so well in other places e.g the GH plugins on food4rhino, to not always name that one game engine.

This literally has been discussed in every way possible both here and on blenderartists, given these threads tend to be time intensive to moderate and there has been no change of heart from the core group on this. I’m just gonna save everyone a whole bunch of time, and close this early.

Also it’s rubbing up uncomfortably close to the no feature requests rule

sorry guys…