This directory contains code that interfaces upb with external C/C++ libraries. For example: * upb/bindings/{stdc,stdc++} interfaces between upb and the standard libraries of C and C++ (like C's FILE/stdio, C++'s string/iostream, etc.) * upb/bindings/googlepb interfaces between upb and the "protobuf" library distributed by Google. * upb/bindings/lua: a Lua extension that exposes upb to Lua programs via the Lua C API. * upb/bindings/linux: code and build system for building upb as a Linux kernel module. The two key characteristics that decide whether code belongs in upb/bindings/ are: * Does the code's public API refer to types from another library? If so it belongs in upb/bindings/. But this doesn't include code that just happens to use another library internally, as an implementation detail. * Would this code be useful to someone who is not using this external library in some other way? If so, the code probably doesn't belong in upb/bindings/.