Looks like it's defined using protocol buffers, with "rich Go and Rust bindings" and links to implementations for many other languages.