Skip to content

Questions on integrating a new language for extensibility #3166

Answered by CouleeApps
alexrp asked this question in API
Discussion options

You must be logged in to vote

Generally speaking, a loader plugin is necessary for languages whose plugins may not compile directly to loadable modules. You need a native module as an entrypoint to the plugin api, although you can use the C FFI bindings from user code after that.

For example, the Python api uses a built-in native core plugin (pythonplugin.dll / .dylib / .so) which loads user python plugins from a directory. It handles versioning, resolving the user's selected python loader, virtualenv, etc, but generally just sets up a thread into which the binaryninja module is imported. The native plugin also searches the user plugins directory and imports all the various python files it finds in there. Apart from t…

Replies: 2 comments 9 replies

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
9 replies
@alexrp
Comment options

@xusheng6
Comment options

@CouleeApps
Comment options

@alexrp
Comment options

@CouleeApps
Comment options

Answer selected by psifertex
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants