{"repo":"boratanrikulu/gobee","free":true,"listed":false,"github":"https://github.com/boratanrikulu/gobee","clone":"git clone https://github.com/boratanrikulu/gobee.git","description":"Write your BPF programs in Go, not C. gobee transpiles a Go subset to BPF C and generates typed cilium/ebpf bindings.","language":"Go","stars":345,"topics":["cilium-ebpf","ebpf","golang","kernel","linux","transpiler","bpf"],"license":"MIT","category":"dev-tools","readme_excerpt":"gobee Write your BPF programs in Go, not C. gobee transpiles a strict subset of Go into BPF C, generates typed Go bindings for the userspace side, and gates loads against the running kernel. The Go ecosystem has solid userspace tooling for BPF. The kernel side has always ended with \"now write your program in C.\" Aya brought eBPF to Rust by writing a new BPF backend in rustc. gobee gets there a different way: by transpiling to C and reusing clang's mature backend. A Go file in, a BPF program out A tracepoint that streams every execve to userspace via a ringbuf: Your input (Go) What gobee emits (BPF C) gobee translate --bindings-dir ./bpf ./bpf/src produces both files, plus a sourcemap ( events.bpf.c.map ) so verifier errors map back to Go lines and a typed bindings file ( bpf/events bindings.go ) so the userspace driver writes objs.Events , objs.AttachOnExec() , and decodes ringbuf payloads straight into bpf.Event (the same struct you see above, re-published in Go) instead of stringly-typed coll.Programs[\"...\"] lookups. The C is readable on purpose. If gobee emits something weird, you can see it. For tracepoints + kprobes + XDP combined into one binary, see example/sysmon/ . How it compares gobee C + clang + bpf2go Aya (Rust) bpftrace BCC --- --- --- --- --- --- Kernel-side language Go subset C Rust DSL C Userspace integration typed Go bindings + cilium/ebpf bpf2go aya-runtime none python CO-RE ✅ via clang ✅ ✅ via LLVM ✅ ✅ Helper coverage 200 typed Go wrappers full (write C) f","default_branch":null,"files":null,"tree":[],"storefront":"/r/boratanrikulu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/boratanrikulu/gobee/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}