Omer Katz created PROTON-2095:
---------------------------------

             Summary: Move away from SWIG to CFFI
                 Key: PROTON-2095
                 URL: https://issues.apache.org/jira/browse/PROTON-2095
             Project: Qpid Proton
          Issue Type: Wish
          Components: python-binding
    Affects Versions: proton-c-0.29.0, proton-c-future
            Reporter: Omer Katz
             Fix For: proton-c-future


SWIG is fine but we're not using it for anything other than exporting all of 
proton-c's API as is.

Unfortunately SWIG only generates CPython extension bindings. This may be a 
problem on PyPy where CPython extensions are either slow or simply won't 
compile.

Unlike SWIG, CFFI is portable both on CPython and PyPy.

It also satisfies the same requirements as SWIG currently does.

In addition, calls to CFFI simply release the GIL which will help parallelizing 
Python applications using threads.

By using CFFI we can also get rid of all of our setup.py code and simply use it 
to build the extension. We will also no longer have problems building wheels.

The newest version of CFFI supports pkg-config so we can use that to find 
proton-c easily.

I'm willing to help with the refactor but I'll need a mentor since I'm not 
familiar with the code base.

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to