zyantific / zydis

Fast and lightweight x86/x86-64 disassembler and code generation library
https://zydis.re
MIT License
3.37k stars 435 forks source link

Create additional language bindings for Zydis #111

Open flobernd opened 5 years ago

flobernd commented 5 years ago

Zydis should provide more (official) language bindings:

Feel free to contribute, if no user is mentioned on a specific bindings task.

athre0z commented 5 years ago

I'm gonna maintain official Py3 bindings starting with v3, perhaps forked from the inofficial ones (not sure whether I want to go the ctypes way yet).

athre0z commented 5 years ago

Regarding C++ bindings, I don't really know if it's worth it since due to our no-malloc policy it's already very convenient to use our stuff in C++ (no need for free calls in destructors etc.). The only thing that would perhaps be a nice addition is having native iterator support. Not sure if that is worth maintaining another binding with duplicated documentation etc..

jpap commented 5 years ago

I had a need to perform disassembly in a Go program, and the standard library support is unfortunately far from complete for x86-64. Zydis has performed admirably, and is a very well written library -- thanks for a great project!

The Go bindings are here:

athre0z commented 5 years ago

Wow, this looks very well made -- thank you for going through the effort! You even rewrote all the doc comments to fit the Go context. I'm guessing this is probably among the highest quality bindings we got so far.

If it eases your maintenance, feel free to PR code gen for your enum types etc. into zydis-bindgen, btw!

I'll add these to the README momentarily.