Bindet eine Python-Bibliothek an C

9

Was ich tun möchte, ist das Gegenteil dessen, was die meisten Leute tun möchten: Ich habe eine Bibliothek in Python geschrieben und möchte sie C (und möglicherweise anderen Sprachen) zur Verfügung stellen.

Ich weiß, dass die typische Antwort darauf die Verwendung der Python-Bibliothek für C ist:

%Vor%

(Quelle: Ссылка )

Dies scheint mir jedoch nicht optimal zu sein:

  • Es ist hässlich
  • Es ist nur für C

Was ich möchte, ist stattdessen eine Möglichkeit, meine Bibliothek an viele Sprachen zu binden, einschließlich C. Die automatische Generierung von Wrappern ist mir egal: Meine Bibliothek ist ziemlich einfach, also kann ich Klebecode schreiben.

Im Moment ist die einzige Lösung, die ich mir ausgedacht habe, die Verwendung eines Codes ähnlich dem oben genannten, um meine Bibliothek an C zu binden. Dann benutze SWIG um die C-Bibliothek an andere Sprachen zu binden.

Gibt es einen besseren?

    
boyska 16.05.2012, 15:15
quelle

1 Antwort

4

Nun C ist die Lingua Franca Programmierung. Ich würde also sagen, dass Ihre Herangehensweise richtig ist. Erstellen Sie eine Bindung für C und verwenden Sie dann Tools wie SWIG und das FFI der anderen Sprachen, um an C zu binden.

Nur eine andere Idee kommt mir in den Sinn. Heute sehen wir HTTP als neue Lingua franca für alle Arten von APIs und Interfaces. Man könnte also darüber nachdenken, einen kleinen Webservice in Python zu erstellen, der eine REST-Schnittstelle bietet. Aber das macht natürlich nur in bestimmten Einstellungen Sinn.

Natürlich, sobald Sie sich entscheiden, Ihre Python-Bibliothek in einem separaten Prozess auszuführen, gibt es alle Möglichkeiten der Kommunikation zwischen Prozessen wie Named Pipes oder Sockets und Toolkits wie Apache Thrift , Google Protokollpuffer oder 0MQ .

    
snies 16.05.2012 15:29
quelle

Tags und Links