{"id":13461484,"url":"https://github.com/cilium/ebpf","last_synced_at":"2025-09-09T21:19:17.193Z","repository":{"id":37493257,"uuid":"206649463","full_name":"cilium/ebpf","owner":"cilium","description":"ebpf-go is a pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel.","archived":false,"fork":false,"pushed_at":"2025-05-05T12:39:48.000Z","size":48967,"stargazers_count":6813,"open_issues_count":37,"forks_count":737,"subscribers_count":103,"default_branch":"main","last_synced_at":"2025-05-05T15:56:05.792Z","etag":null,"topics":["btf","ebpf","go","golang","linux"],"latest_commit_sha":null,"homepage":"https://ebpf-go.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cilium.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-09-05T20:13:28.000Z","updated_at":"2025-05-05T13:13:24.000Z","dependencies_parsed_at":"2022-07-13T10:50:31.345Z","dependency_job_id":"b5531415-d5b3-4d3d-922b-f3645b422246","html_url":"https://github.com/cilium/ebpf","commit_stats":{"total_commits":1812,"total_committers":167,"mean_commits":"10.850299401197605","dds":0.7466887417218543,"last_synced_commit":"aa4d11dde8163caf612474ac54357704fc6d1c39"},"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilium%2Febpf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilium%2Febpf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilium%2Febpf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cilium%2Febpf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cilium","download_url":"https://codeload.github.com/cilium/ebpf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253797741,"owners_count":21965956,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["btf","ebpf","go","golang","linux"],"created_at":"2024-07-31T11:00:40.427Z","updated_at":"2025-09-09T21:19:17.160Z","avatar_url":"https://github.com/cilium.png","language":"Go","readme":"# eBPF\n\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/cilium/ebpf)](https://pkg.go.dev/github.com/cilium/ebpf)\n\n![HoneyGopher](docs/ebpf/ebpf-go.png)\n\nebpf-go is a pure Go library that provides utilities for loading, compiling, and\ndebugging eBPF programs. It has minimal external dependencies and is intended to\nbe used in long running processes.\n\nSee [ebpf.io](https://ebpf.io) for complementary projects from the wider eBPF\necosystem.\n\n## Getting Started\n\nPlease take a look at our [Getting Started] guide.\n\n[Contributions](https://ebpf-go.dev/contributing) are highly encouraged, as they highlight certain use cases of\neBPF and the library, and help shape the future of the project.\n\n## Getting Help\n\nThe community actively monitors our [GitHub Discussions](https://github.com/cilium/ebpf/discussions) page.\nPlease search for existing threads before starting a new one. Refrain from\nopening issues on the bug tracker if you're just starting out or if you're not\nsure if something is a bug in the library code.\n\nAlternatively, [join](https://ebpf.io/slack) the\n[#ebpf-go](https://cilium.slack.com/messages/ebpf-go) channel on Slack if you\nhave other questions regarding the project. Note that this channel is ephemeral\nand has its history erased past a certain point, which is less helpful for\nothers running into the same problem later.\n\n## Packages\n\nThis library includes the following packages:\n\n* [asm](https://pkg.go.dev/github.com/cilium/ebpf/asm) contains a basic\n  assembler, allowing you to write eBPF assembly instructions directly\n  within your Go code. (You don't need to use this if you prefer to write your eBPF program in C.)\n* [cmd/bpf2go](https://pkg.go.dev/github.com/cilium/ebpf/cmd/bpf2go) allows\n  compiling and embedding eBPF programs written in C within Go code. As well as\n  compiling the C code, it auto-generates Go code for loading and manipulating\n  the eBPF program and map objects.\n* [link](https://pkg.go.dev/github.com/cilium/ebpf/link) allows attaching eBPF\n  to various hooks\n* [perf](https://pkg.go.dev/github.com/cilium/ebpf/perf) allows reading from a\n  `PERF_EVENT_ARRAY`\n* [ringbuf](https://pkg.go.dev/github.com/cilium/ebpf/ringbuf) allows reading from a\n  `BPF_MAP_TYPE_RINGBUF` map\n* [features](https://pkg.go.dev/github.com/cilium/ebpf/features) implements the equivalent\n  of `bpftool feature probe` for discovering BPF-related kernel features using native Go.\n* [rlimit](https://pkg.go.dev/github.com/cilium/ebpf/rlimit) provides a convenient API to lift\n  the `RLIMIT_MEMLOCK` constraint on kernels before 5.11.\n* [btf](https://pkg.go.dev/github.com/cilium/ebpf/btf) allows reading the BPF Type Format.\n* [pin](https://pkg.go.dev/github.com/cilium/ebpf/pin) provides APIs for working with pinned objects on bpffs.\n\n## Requirements\n\n* A version of Go that is [supported by\n  upstream](https://golang.org/doc/devel/release.html#policy)\n* Linux (amd64, arm64): CI is run against kernel.org LTS releases. \u003e= 4.4 should work but EOL'ed\n  versions are not supported.\n* Windows (amd64): CI is run against Windows Server 2022. Only the latest eBPF for Windows\n  release is supported.\n* Other architectures are best effort. 32bit arches are not supported.\n\n## License\n\nMIT\n\n### eBPF Gopher\n\nThe eBPF honeygopher is based on the Go gopher designed by Renee French.\n\n[Getting Started]: https://ebpf-go.dev/guides/getting-started/\n","funding_links":[],"categories":["eBPF Workflow: Tools and Utilities","Go","Uncategorized","Performance","Repositories","golang","eBPF 工作流：工具和实用程序","Utilities","Cilium related projects","性能"],"sub_categories":["Go libraries","Uncategorized","HTTP Clients","Go 库","Utility/Miscellaneous","HTTP客户端"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcilium%2Febpf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcilium%2Febpf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcilium%2Febpf/lists"}