# Introduction to Mojo

This is a high-level introduction to Mojo, and tries to explain its most
important aspects.

* [What is Mojo?](what_is_mojo.md)
* [Mojo programs](programs.md)
* [Mojo handles (objects)](handles.md)
* [Message pipes](message_pipes.md)
* [Mojom IDL](mojom_idl.md)
* [Mojom protocol](mojom_protocol.md)
