{"adoption": {"forks": 363, "observed_at": "2026-08-28T04:05:38.847660+00:00", "stars": 1804}, "canonical_url": "https://ross.abutalabs.com/products/learning-ebpf", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Learning eBPF, published by O'Reilly - out now! Here's where you'll find a VM config for the examples, and more", "domain": ["developer-tools", "operating-systems", "security", "monitoring", "tutorials"], "enriched": true, "function": ["developer-tools", "monitoring", "security", "networking"], "health_score": 64, "homepage": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121", "language": "C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["lizrice/learning-ebpf"], "name": "lizrice/learning-ebpf", "platform": ["cli", "cpp"], "pushed_at": "2026-03-23T14:49:12+00:00", "repo": "lizrice/learning-ebpf", "stars": 1804, "tags": ["ebpf", "libbpf", "bcc", "linux-kernel", "book-examples", "observability", "xdp", "lima-vm", "linux"], "topics": ["ebpf", "ebpf-co-re", "linux-kernel"], "urls": [], "use_cases": ["learn eBPF programming from scratch", "run example eBPF programs on Linux", "set up a VM environment for eBPF development", "understand how eBPF bytecode is generated from C source", "explore XDP and bpf() system call examples", "study eBPF for observability, networking, and security"], "what_it_is": "Companion repository for the O'Reilly book 'Learning eBPF' by Liz Rice, containing example eBPF programs in C and BCC for each book chapter. It also provides a Lima VM configuration with pre-installed dependencies for building and running the examples.", "when_to_avoid": ["you need production-ready eBPF tooling rather than educational examples", "you are not on Linux and don't want to use a Lima VM", "you want a comprehensive eBPF framework or library"], "when_to_choose": ["you are reading or following the Learning eBPF book", "you want hands-on, chapter-by-chapter eBPF examples", "you need a ready-made Linux VM configured for eBPF tooling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/learning-ebpf", "repo": "lizrice/learning-ebpf", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:38.847660+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:49.337747+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aad30ccf41ca62e8d08f30eaacbf797b3400e026fe5cfe385fca4149426f3c1c", "fetched_at": "2026-08-28T04:05:38.847660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lizrice/learning-ebpf"}, {"content_hash": "6d1d7ac1af179d1352be2852077946ab5a8916cc79aed0e227374e36b4392293", "fetched_at": "2026-08-29T11:00:38.939494+00:00", "kind": "homepage", "missing": false, "url": "https://www.amazon.com/Learning-eBPF-Programming-Observability-Networking/dp/1098135121"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 73, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1492, "days_push": 163, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}