<img
    src="./assets/images/logo/blue.svg"
    width="250"
    style="display: block; width: 250px; margin: auto; margin-bottom: 3em"
/>

### What is OCCA?

In a nutshell, OCCA (like *oca*-rina) is an open-source library which aims to

- Make it easy to program different types of devices (e.g. _CPU_, _GPU_, _FPGA_)
- Provide a [unified API](guide/occa/introduction.md) for interacting with backend device APIs (e.g. _OpenMP_, _CUDA_, _OpenCL_)
- Use just-in-time compilation to build backend kernels
- Provide a [kernel language](guide/okl/introduction.md), a minor extension to C, to abstract programming for each backend

### Quick Navigation

- [Getting started](guide/user-guide/introduction.md)
- [Guide to the OCCA API](guide/occa/introduction.md)
- [Guide to the OCCA kernel language](guide/okl/introduction.md)
- [API Documentation](api/README.md)
- [Examples](examples/README.md)
- [Meet the Team](team.md)
- [History of OCCA](history.md)
- [Gallery](gallery.md)
- [Publications](publications.md)
