zydis icon indicating copy to clipboard operation
zydis copied to clipboard

Create additional language bindings for Zydis

Open flobernd opened this issue 5 years ago • 4 comments

Zydis should provide more (official) language bindings:

  • [ ] Create C++ wrapper class bindings (@flobernd)
  • [ ] Create C# bindings (@flobernd)
  • [x] Create Go bindings
  • [ ] Create Java bindings
  • [x] Create Pascal bindings (@flobernd)
  • [ ] Create Python bindings (official) (@athre0z)
  • [x] Create Rust bindings (@th0rex)
  • [ ] Update unofficial LuaJIT bindings

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

flobernd avatar Mar 24 '19 10:03 flobernd

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 avatar Mar 24 '19 10:03 athre0z

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..

athre0z avatar Mar 24 '19 10:03 athre0z

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:

  • https://godoc.org/go.jpap.org/zydis
  • https://github.com/jpap/go-zydis

jpap avatar Aug 04 '19 06:08 jpap

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.

athre0z avatar Aug 04 '19 07:08 athre0z