README.md
1 Mojo Public C++ API
2 ===================
3
4 This directory contains C++ language bindings for the Mojo Public API.
5
6 A number of subdirectories provide wrappers for the lower-level C APIs (in
7 subdirectories of the same name, under mojo/public/c/). Typically, these
8 wrappers provide increased convenience and/or type-safety.
9
10 Other subdirectories provide support (static) libraries of various sorts. In
11 this case, the organization is to have the public interface for the library
12 defined in header files in the subdirectory itself and the implementation of the
13 library at a lower level, under a lib (sub)subdirectory. A developer should be
14 able to substitute their own implementation of any such support library, and
15 expect other support libraries, which may depend on that library, to work
16 properly.
17
18 Bindings
19 --------
20
21 The bindings/ subdirectory contains a support (static) library needed by the
22 code generated by the bindings generator tool (in mojo/public/tools/bindings/),
23 which translates Mojo IDL (.mojom) files into idiomatic C++ (among other
24 languages).
25
26 System
27 ------
28
29 The system/ subdirectory contains C++ wrappers (and some additional helpers) of
30 the API defined in mojo/public/c/system/, which defines the basic, "core" API,
31 especially used to communicate with Mojo services.
32
33 Test Support
34 ------------
35
36 The test_support/ subdirectory contains C++ wrappers of the test-only API
37 defined in mojo/public/c/test_support/. It is not meant for general use by Mojo
38 applications.
39