# Introduction

mdBook is a command line tool and Rust crate to create books with Markdown. The output resembles tools like Gitbook, and is ideal for creating product or API documentation, tutorials, course materials or anything that requires a clean, easily navigable and customizable presentation. mdBook is written in Rust; its performance and simplicity made it ideal for use as a tool to publish directly to hosted websites such as GitHub Pages via automation. This guide, in fact, serves as both the mdBook documentation and a fine example of what mdBook produces.

mdBook includes built in support for both preprocessing your Markdown and alternative renderers for producing formats other than HTML. These facilities also enable other functionality such as validation. Searching Rust's crates.io is a great way to discover more extensions.

## API Documentation

In addition to the above features, mdBook also has a Rust API. This allows you to write your own preprocessor or renderer, as well as incorporate mdBook features into other applications. The For Developers section of this guide contains more information and some examples.

## Markdown

mdBook's parser adheres to the CommonMark specification. You can take a quick tutorial, or try out CommonMark in real time. For a more in-depth experience, check out the Markdown Guide.

## Contributing

mdBook is free and open source. You can find the source code on GitHub and issues and feature requests can be posted on the GitHub issue tracker. mdBook relies on the community to fix bugs and add features: if you'd like to contribute, please read the CONTRIBUTING guide and consider opening a pull request.

## License

The mdBook source and documentation are released under the Mozilla Public License v2.0.