# Development Guide

## Compile Documentation

Xray supports multiple platforms, and you can perform cross-compilation on various platforms by yourself.

Please click [Compile Documentation](./intro/compile.md) to view specific compile-related content.

## Design Concept

Xray kernel provides a platform for secondary development.

This section explains the design goals and architecture of Xray.

Please click [Design Principles](./intro/design.md) to learn about the design goals and architecture of Xray.

## Development Standards

This section outlines the guidelines to follow when obtaining code, developing, submitting PRs, as well as the relevant coding standards.

Please click [Development Specification](./intro/guide.md) to view the guidelines that should be followed during Xray development.

## Protocol Details

Xray uses many protocols, and you can obtain a detailed description of each protocol through various means.

### [VLESS Protocol](./protocols/vless.md)

VLESS is a stateless lightweight transport protocol that can serve as a bridge between Xray clients and servers.

### [VMess Protocol](./protocols/vmess.md)

VMess is an encrypted transport protocol that can act as a bridge between Xray clients and servers.

### [Mux.Cool Protocol](./protocols/muxcool.md)

Mux.Cool protocol is a multiplexing transport protocol used to transmit multiple independent data streams within an established data stream.

### [mKCP Protocol](./protocols/mkcp.md)

mKCP is a stream transmission protocol modified from the [KCP protocol](https://github.com/skywind3000/kcp) that can transmit arbitrary data streams in order.