Add C++ bindings.
Reimplement high-level Python bindings on top of C++ bindings.
Add Java bindings.