|
1 |
| -eBPF |
2 |
| -------- |
| 1 | +# eBPF |
| 2 | + |
3 | 3 | [](https://pkg.go.dev/github.com/cilium/ebpf)
|
4 | 4 |
|
5 |
| -eBPF is a pure Go library that provides utilities for loading, compiling, and debugging eBPF programs. It has minimal external dependencies and is intended to be used in long running processes. |
| 5 | +eBPF is a pure Go library that provides utilities for loading, compiling, and |
| 6 | +debugging eBPF programs. It has minimal external dependencies and is intended to |
| 7 | +be used in long running processes. |
6 | 8 |
|
7 |
| -* [asm](https://pkg.go.dev/github.com/cilium/ebpf/asm) contains a basic assembler. |
8 |
| -* [link](https://pkg.go.dev/github.com/cilium/ebpf/link) allows attaching eBPF to various hooks. |
9 |
| -* [perf](https://pkg.go.dev/github.com/cilium/ebpf/perf) allows reading from a PERF_EVENT_ARRAY. |
10 |
| -* [cmd/bpf2go](https://pkg.go.dev/github.com/cilium/ebpf/cmd/bpf2go) allows embedding eBPF in Go. |
| 9 | +* [asm](https://pkg.go.dev/github.com/cilium/ebpf/asm) contains a basic |
| 10 | + assembler |
| 11 | +* [link](https://pkg.go.dev/github.com/cilium/ebpf/link) allows attaching eBPF |
| 12 | + to various hooks |
| 13 | +* [perf](https://pkg.go.dev/github.com/cilium/ebpf/perf) allows reading from a |
| 14 | + `PERF_EVENT_ARRAY` |
| 15 | +* [cmd/bpf2go](https://pkg.go.dev/github.com/cilium/ebpf/cmd/bpf2go) allows |
| 16 | + embedding eBPF in Go |
11 | 17 |
|
12 |
| -The library is maintained by [Cloudflare](https://www.cloudflare.com) and [Cilium](https://www.cilium.io). Feel free to [join](https://cilium.herokuapp.com/) the [libbpf-go](https://cilium.slack.com/messages/libbpf-go) channel on Slack. |
| 18 | +The library is maintained by [Cloudflare](https://www.cloudflare.com) and |
| 19 | +[Cilium](https://www.cilium.io). Feel free to |
| 20 | +[join](https://cilium.herokuapp.com/) the |
| 21 | +[#libbpf-go](https://cilium.slack.com/messages/libbpf-go) channel on Slack. |
13 | 22 |
|
14 | 23 | ## Current status
|
15 | 24 |
|
16 |
| -The package is production ready, but **the API is explicitly unstable |
17 |
| -right now**. Expect to update your code if you want to follow along. |
| 25 | +The package is production ready, but **the API is explicitly unstable right |
| 26 | +now**. Expect to update your code if you want to follow along. |
18 | 27 |
|
19 | 28 | ## Requirements
|
20 | 29 |
|
21 |
| -* A version of Go that is [supported by upstream](https://golang.org/doc/devel/release.html#policy) |
| 30 | +* A version of Go that is [supported by |
| 31 | + upstream](https://golang.org/doc/devel/release.html#policy) |
22 | 32 | * Linux 4.9, 4.19 or 5.4 (versions in-between should work, but are not tested)
|
23 | 33 |
|
24 | 34 | ## Useful resources
|
25 | 35 |
|
26 | 36 | * [eBPF.io](https://ebpf.io) (recommended)
|
27 |
| -* [Cilium eBPF documentation](https://docs.cilium.io/en/latest/bpf/#bpf-guide) (recommended) |
28 |
| -* [Linux documentation on BPF](https://www.kernel.org/doc/html/latest/networking/filter.html) |
29 |
| -* [eBPF features by Linux version](https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md) |
| 37 | +* [Cilium eBPF documentation](https://docs.cilium.io/en/latest/bpf/#bpf-guide) |
| 38 | + (recommended) |
| 39 | +* [Linux documentation on |
| 40 | + BPF](https://www.kernel.org/doc/html/latest/networking/filter.html) |
| 41 | +* [eBPF features by Linux |
| 42 | + version](https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md) |
| 43 | + |
| 44 | +## License |
| 45 | + |
| 46 | +MIT |
0 commit comments