Hello,
As a follow up to the presentation that Brendan Kerrigan and I gave at Xen
summit earlier this month, "Client Virtualization Toolstack in Go", I would like to open
a discussion around the development of Go bindings for libxl. George Dunlap,
Nicolas Belouin and I have had some discussion off-line already.
So far, these are the topics of discussion:
- Code generation: Should the Go bindings be generated from the IDL? Or should
an existing cgo generator like c-for-go [1] be leveraged?
- What does the minimal viable Go package look like? IMO it should be able to create
and destroy domains, attach and detach network and disk devices, list domains,
and convert domid to name and vice versa. It is also important that the exported
APIs reflect idiomatic Go.
- Challenges surrounding hypervisor versioning, go modules, etc.
ATM, the code generation piece is the primary concern.
George - could you explain your thoughts on the code generation topic?
The existing bindings that I have been working on are at [2].
Thanks,
- Nick Rosbrook
[1]
https://github.com/xlab/c-for-go
[2]
https://github.com/enr0n/xen/tree/libxl-go/tools/golibxl/libxl