Clone this repo:

Branches

  1. 7a8df33 Fix Wmissing-field-initializers warnings in C bindings unittests by James Robinson · 23 hours ago master
  2. 18cae37 C generator: Fix map type descriptor generation, generate definitions for interfaces, and other drive-by. by Vardhan Mudunuru · 3 days ago
  3. c7f912f Rust: Add event loop by Michael Anthony Knyszek · 3 days ago
  4. 2f362c3 mojo/public/c/system/data_pipe_unittests fixes by James Robinson · 6 days ago
  5. 27ac3c6 Fix numerous bugs in the new go bindings generator. by Alexandre Zani · 8 days ago

Mojo Public API

The Mojo Public API is a binary stable API to the Mojo system.

It consists of support for a number of programming languages (with a directory for each support language), some “build” tools and build-time requirements, and interface definitions for Mojo services (specified using an IDL).

Note that there are various subdirectories named tests/. These contain tests of the code in the enclosing directory, and are not meant for use by Mojo applications.

C/CPP/JS

The c/, cpp/, js/ subdirectories define the API for C, C++, and JavaScript, respectively.

The basic principle for these directories is that they consist of the source files that one needs at build/deployment/run time (as appropriate for the language), organized in a natural way for the particular language.

Interfaces

The interfaces/ subdirectory contains Mojo IDL (a.k.a. .mojom) descriptions of standard Mojo services.

Platform

The platform/ subdirectory contains any build-time requirements (e.g., static libraries) that may be needed to produce a Mojo application for certain platforms, such as a native shared library or as a NaCl binary.

Tools

The tools/ subdirectory contains tools that are useful/necessary at build/deployment time. These tools may be needed (as a practical necessity) to use the API in any given language, e.g., to generate bindings from Mojo IDL files.