awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
cilium avatar

cilium/ebpf

0
View on GitHub↗
7,529 stars·828 forks·Go·mit·24 viewsebpf-go.dev↗

Ebpf

This project is a Go library and runtime for loading and managing eBPF programs and maps. It provides a bytecode loader and kernel interface to inject instructions into kernel hooks for system-level execution and observability across both Linux and Windows operating systems.

The library features a relocation engine and tooling to ensure program compatibility across different kernel versions and distributions. It supports portable deployment by embedding compiled objects for multiple CPU architectures into a single binary and provides the ability to load signed system drivers on Windows.

The runtime covers several capability areas, including kernel program management, state sharing through map-based communication, and the generation of type-safe Go scaffolding from compiled objects. It also manages the lifecycle of kernel file descriptors to prevent resource leaks and supports persistent objects via a pinned filesystem.

Features

  • Kernel Bytecode Execution - Loads compiled instructions into the kernel to trigger logic based on specific system events or network hooks.
  • Cross-Platform Runtimes - Provides a runtime that enables the execution of eBPF bytecode on both Linux and Windows operating systems.
  • Kernel Event Hooks - Allows binding eBPF programs to specific kernel events to trigger execution when the system reaches a defined state.
  • Compile Once Run Everywhere Relocation - Adjusts memory offsets at runtime using type information to ensure bytecode compatibility across different kernel versions.
  • eBPF Tooling - Executes eBPF bytecode on Windows systems using a platform-specific runtime compatible with standard implementations.
  • Bytecode Loaders - Parses compiled eBPF object files and injects bytecode into kernel hooks for system-level execution.
  • CO-RE Relocation - Provides a relocation engine and type-format utilities to ensure bytecode compatibility across different kernel distributions.
  • Cross-Platform Deployment - Provides the ability to develop and run eBPF programs across multiple kernel versions and both Linux and Windows.
  • Kernel Interfaces - Offers abstractions for interacting with kernel maps, ring buffers, and global variables from user space.
  • Kernel Map Data Access - Performs lookups and retrievals of data stored in kernel maps from within an application.
  • Kernel Map Management - Creates and manages map objects for sharing data between the kernel and user space.
  • Kernel Observability Programs - Loads and compiles programs to run within the kernel for system-level observability, networking, and security.
  • Kernel-to-User Bridges - Implements mechanisms for exchanging data and routing requests between the kernel and user-space via shared maps.
  • Kernel-Userspace Shared Maps - Uses specialized kernel data structures to exchange information and maintain state between the kernel and the application.
  • Kernel Version Compatibility Layers - Adjusts memory accesses at runtime using type formats so programs work across different distributions and versions.
  • eBPF Go Libraries - Provides a comprehensive Go library for loading and managing eBPF programs and maps.
  • Kernel Event Observability - Attaches programs to kernel hooks to monitor system events and extract performance data in real time.
  • Kernel Ring Buffer Retrieval - Extracts data from kernel maps using specialized interfaces for performance events and ring buffers.
  • Map Specification Parsing - Parses type-style or fixed-width map definitions from specific sections to initialize kernel maps.
  • Multi-Architecture Binary Bundling - Embeds compiled objects for multiple CPU architectures into a single binary for portable deployment across different hardware.
  • Kernel Feature Managers - Checks if the running kernel supports specific program types or helpers to ensure compatibility across different versions.
  • Binary Asset Embedding - Embeds compiled objects for multiple CPU architectures into a single binary to enable deployment without external files.
  • Metadata Section Parsing - Derives program types and map definitions by parsing metadata stored in specific sections of the compiled object file.
  • Executable Program Loading - Parses compiled files into specifications to modify and load programs and maps into the kernel.
  • Bytecode Compilation and Embedding - Compiles C programs into bytecode and generates glue code to embed and manage these programs within an application.
  • Development Workflows - Implements a workflow for compiling C code into bytecode and generating type-safe Go scaffolding.
  • File Descriptor Managers - Tracks kernel file descriptors and closes them during garbage collection to prevent resource leaks in the system.
  • Go Code Generators - Automatically creates type-safe wrappers and structures from compiled objects to simplify interaction between user space and the kernel.
  • Global Variable Mappings - Exposes mutable and read-only global variables from the binary for modification before they are loaded into the kernel.
  • Section-Based Typing - Derives program types and attachment targets from file section names to simplify the loading process.
  • Development Frameworks - Pure-Go library for loading and attaching eBPF programs.

Star history

Star history chart for cilium/ebpfStar history chart for cilium/ebpf

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does cilium/ebpf do?

This project is a Go library and runtime for loading and managing eBPF programs and maps. It provides a bytecode loader and kernel interface to inject instructions into kernel hooks for system-level execution and observability across both Linux and Windows operating systems.

What are the main features of cilium/ebpf?

The main features of cilium/ebpf are: Kernel Bytecode Execution, Cross-Platform Runtimes, Kernel Event Hooks, Compile Once Run Everywhere Relocation, eBPF Tooling, Bytecode Loaders, CO-RE Relocation, Cross-Platform Deployment.

Which projects share features with cilium/ebpf?

Projects with overlapping indexed features include: aya-rs/aya — Aya is a Rust-native framework for writing, compiling, and loading eBPF programs into the Linux kernel. It provides a… eunomia-bpf/bpf-developer-tutorial — This project is an educational resource providing a comprehensive development tutorial for writing and loading eBPF… iovisor/bcc — BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It… bpftrace/bpftrace — bpftrace is a high-level eBPF tracing tool and kernel instrumentation framework for Linux. It provides a tracing… mit-pdos/xv6-public — xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an… inspektor-gadget/inspektor-gadget — Inspektor Gadget is an eBPF observability toolset and program framework designed for tracing Linux systems and…

Projects sharing features with Ebpf

These projects share indexed features with Ebpf. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • aya-rs/ayaaya-rs avatar

    aya-rs/aya

    4,321View on GitHub↗

    Aya is a Rust-native framework for writing, compiling, and loading eBPF programs into the Linux kernel. It provides a complete development environment that eliminates the need for a C toolchain or libbpf, allowing developers to work entirely within the Rust ecosystem. The framework manages the full lifecycle of eBPF programs, including async runtime integration, CO-RE BTF resolution for kernel version portability, ELF-based program loading, and safe kernel memory access. The framework distinguishes itself through its pure Rust compilation pipeline, which compiles Rust source code directly int

    Rustbpfebpfobservability
    View on GitHub↗4,321
  • eunomia-bpf/bpf-developer-tutorialeunomia-bpf avatar

    eunomia-bpf/bpf-developer-tutorial

    4,145View on GitHub↗

    This project is an educational resource providing a comprehensive development tutorial for writing and loading eBPF programs using C, Go, and Rust within the Linux kernel. It serves as a technical guide for developing custom logic to execute directly in the kernel. The materials cover specialized domains including kernel observability and tracing, security implementation for intrusion detection, and high-performance network engineering for packet filtering and load balancing. It also includes dedicated manuals for Linux kernel tracing and the use of kprobes, uprobes, and tracepoints. The pro

    Cbpfebpfexamples
    View on GitHub↗4,145
  • iovisor/bcciovisor avatar

    iovisor/bcc

    22,459View on GitHub↗

    BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It functions as a performance analysis tool and debugging utility to capture system events, measure kernel latency, and provide network observability. The project distinguishes itself by providing a build system that integrates with LLVM to compile C-like code into BPF bytecode at runtime. It utilizes BPF Type Format data for relocations to maintain cross-kernel compatibility and extracts kernel headers to ensure the generated programs match the specific kernel version. The toolkit co

    C
    View on GitHub↗22,459
  • bpftrace/bpftracebpftrace avatar

    bpftrace/bpftrace

    9,950View on GitHub↗

    bpftrace is a high-level eBPF tracing tool and kernel instrumentation framework for Linux. It provides a tracing language to instrument kernel and user-space events without recompiling the system, functioning as a dynamic system profiler and event aggregator. The project enables dynamic system tracing and Linux kernel observability by capturing tracepoints and dynamic probes in real time. It allows for kernel data inspection and runtime process debugging by accessing internal data structures and filtering specific process events. Its capability surface covers system performance analysis, inc

    C++bccbpfebpf
    View on GitHub↗9,950
  • Compare all 30 related projects→