I've explored a bit the code of kivy-ios to better grasp the implications of the "single binary" concept, and if I understand correctly :
-
all compiled python extensions must be turned into static libraries
("mylib.a"), while the .so files are left empty, just as markers
So here are some questions, thanks in advance to anyone who could enlighten me about these ^^
-
what is the purpose of the custom importer, doesn't Python already
perform this search of .so/.dll/etc extension files usually ?
-
what prevents collisions between the native symbols in the "single
binary", since everything is merged? Maybe nothing special, and it's
just up to APIs to use qualified names themselves?
-
some libs like Pycryptodome use CFFI or CTYPES to dynamically find and
load their native extensions, what would be the amount of operations to
make these play well with Kivy-ios too? I guess one would have to create
recipes so that all their ".so" are properly created as ".a" files, and
then patch all relevant libs (ctypes, cffi...) to once more redirect
the loading of symbols to the current binary?
- have there already been discusions about packages containing Rust extensions, like cryptography?
regards,
Pascal