hermann
hermann copied to clipboard
Investigate using FFI instead of writing C extensions
FFI looks like it has matured enough to where we could delete all the custom C code in this repository and just use FFI bindings.
Couple of open questions:
- Retaining
Hermann::Result
objects through the FFI callbacks support, will that "just work". - Using FFI with static and/or dynamically libraries? What does this mean for the embedded librdkafka
The more we can match the Hermann::Provider::JavaProducer
API the better
- here looks like you can pass back complex types, some kind of casting.
#objptr is a struct *
#this is ruby
objptr = MyLibrary.create_object("my object")
- not sure, would it require something different to building librdkafka.a in the extconf.rb?