complete C ABI for plugins (then Python/JS)
I tried writing a Jami plugin in Rust, and so far, the plugin starts as expected, however I have a hard time invoking services such as getPluginPreferences
and getPluginAccPreferences
.
invokeService
takes (const JAMI_PluginAPI* api, const char* name, void* data)
as parameters, and the void *
data variable gets casted to c++ types, such as std::string
and std::map
, which makes the ABI not completely C compatible. I was able to make getPluginDataPath
work by changing static_cast<std::string>
to static_cast<char*>
, and I'll see how far I can go without too much hassle.