I ended up using ExMagic as it is just a Niff wrapper without any processes/gen_server.
I am curious though, you mention this:
The Server should be run under a pool which provides concurrency and resiliency
Is that really necessary? I may not fully understand Niffs - does calling a niff function get serialized somehow? I figured if you were calling the niff from say multiple beam processes they would all just invoke the C code independently of each other, and not require being wrapped in a pool for concurrent access?


















