blob: a9885a087c7a670b6893e46ba554649bd8e49a60 [file] [log] [blame]
// Copyright (c) Microsoft Corporation
// SPDX-License-Identifier: Apache-2.0
/**
* @mainpage
*
* @section intro Introduction
* This project aims to create an Apache-licensed library for executing eBPF programs. The primary implementation of
* eBPF lives in the Linux kernel, but due to its GPL license it can't be used in many projects.
*
* For more info see:
* <ul>
* <li><a href=https://www.kernel.org/doc/Documentation/networking/filter.txt>Linux documentation for the eBPF instruction set</a>
* <li><a href=https://github.com/iovisor/bpf-docs/blob/master/eBPF.md>Instruction set reference</a>
* </ul>
*
* This project includes an eBPF assembler, disassembler, interpreter (for all platforms), and JIT compiler (for x86-64 and Arm64 targets).
*
* @section build Building
* Note: This works on Windows, Linux, and MacOS, provided the prerequisites are installed.
* <ul>
* <li><code>cmake -S . -B build -DUBPF_ENABLE_TESTS=true</code>
* <li><code>cmake --build build --config Debug</code>
* </ul>
* @section api uBPF API Reference
* API docs: [**ubpf.h**](ubpf_8h.html).
*
*/