Gibt es die Implementierung von CTypes (Python) in Jruby?
Frage
Ich möchte Windows -APIs in Jruby verwenden. Bitte schlagen Sie jede API vor, die die Arbeit von CTypes (Python) erledigen kann.
Lösung
Jruby enthält die FFI -API, die ursprünglich für Rubinius erstellt wurde, jetzt aber auch auf Jruby, Macruby, Maglev, Tinyrb, MRT und Yarv (die letzten beiden über das FFI -Edelstein) unterstützt wird.
Die FFI -API ist speziell entwickelt, um sie sehr einfach an C -Bibliotheken zu binden, ohne tatsächlich C schreiben zu müssen (alle Zuordnungen sind in einem deklarativen Ruby DSL geschrieben).
Daniel J. Berg, der Betreuer des Win32-API-Gems und alle anderen Win32-Bibliotheken, arbeitet derzeit daran, sie dazu zu bringen, auf Jruby zu laufen, indem er sie auf FFI portiert, aber er hat leider ein paar Straßensperren getroffen.
Andere Tipps
Sie können die Java JNA -API verwenden
http://blog.headius.com/2008/10/ffi-for-ruby-now-available.html
JRUBY hat eine Fremdfunktionsschnittstelle. Ich bin mir nicht sicher über den Stand der Windows -Unterstützung, aber es ist wahrscheinlich hinter der *Nix -Version zurückbleibt.
Alternativ können Sie Ihre eigenen Wrapper mit JNI und normalem Java schreiben und sie über JRUBY verwenden