Skip to content

docs: integration templates for the remaining loader archetypes#99

Merged
ErenAri merged 1 commit into
mainfrom
feat/integration-templates
Jul 21, 2026
Merged

docs: integration templates for the remaining loader archetypes#99
ErenAri merged 1 commit into
mainfrom
feat/integration-templates

Conversation

@ErenAri

@ErenAri ErenAri commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Completes the template set. A maintainer can now copy one file rather than read a README and infer the rest — which is the difference between adoption that scales and adoption that needs six weeks of bespoke work per project.

Archetype Template
Go (libbpfgo, ebpf-go/cilium) go-loader-compatibility.yml
Rust (Aya) rust-aya-compatibility.yml
Runtime daemon/agent library-gate.go.md
OCI gadget publisher inspektor-gadget-compatibility.yml (existing)
C/libbpf Covered by the Go template with a different build step — the contract is the binary, not the language

The framing

All four lead with the same idea, because it is the thing that actually unblocked the falcosecurity/libs merge: bring your own loader, there is nothing to maintain. No manifest means no second description of your program to drift out of sync.

The Rust template calls out something worth knowing: Aya is a pure-Rust loader, not a libbpf wrapper, so a "loads under libbpf" result does not transfer. Same for ebpf-go. That is the argument for validating the binary you actually ship rather than re-loading the object with someone else's loader.

Details

  • Every template pins by commit SHA, so a release-matching pin resolves to prebuilt, checksum-verified binaries and the consumer needs no toolchain.
  • Static linking is called out in each build step with the reason (one binary must run unchanged on guests whose glibc is older than the runner's), including the cgo variant for libbpfgo.
  • The library-gate doc keeps the interface in the consumer's project, so adopting it adds no dependency — the shape proven against bpfman's tree.
  • All YAML validated; linked from the README docs index.

Adds copy-paste starting points for Go (libbpfgo, ebpf-go), Rust/Aya,
and an in-process pre-load gate, alongside the existing OCI gadget
template, plus an index that leads with the wedge: bring your own
loader, there is nothing to maintain.

Templates convert where prose does not. Adoption so far has needed
bespoke per-project work; these let a maintainer copy one file instead
of reading a README and inferring the rest.

Each pins the action by commit SHA (a release-matching SHA resolves to
prebuilt, checksum-verified binaries, so no toolchain is needed) and
defaults to the vendor-kernel quirk library, where version numbers stop
predicting behaviour.

Signed-off-by: ErenAri <erenari27@gmail.com>
Copilot AI review requested due to automatic review settings July 21, 2026 19:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@ErenAri
ErenAri merged commit 575de36 into main Jul 21, 2026
7 checks passed
@ErenAri
ErenAri deleted the feat/integration-templates branch July 21, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants