ubpf VS bpftime

Compare ubpf vs bpftime and see what are their differences.

bpftime

Userspace eBPF runtime for fast Uprobe & Syscall hook & Extensions with LLVM JIT (by eunomia-bpf)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
ubpf bpftime
5 6
746 618
2.1% 10.2%
8.5 9.2
6 days ago 8 days ago
C C++
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ubpf

Posts with mentions or reviews of ubpf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-16.
  • Rust-Written Linux Scheduler Showing Promising Results for Gaming Performance
    3 projects | news.ycombinator.com | 16 Jan 2024
    eBPF doesn't run in user space in the context of eBPF in the linux kernel. It's verified so that the kernel can be sure it won't loop forever and then gets JIT'ed and run in kernel space.

    There are some user space BPF vms like https://github.com/iovisor/ubpf and Solana.

  • bpftime: Extending eBPF from Kernel to Userspace
    4 projects | dev.to | 14 Jan 2024
    ubpf: https://github.com/iovisor/ubpf
  • Ask HN: Recommendation for general purpose JIT compiler
    12 projects | news.ycombinator.com | 15 May 2022
    The usual recommendation have been given. Now for more touristic approach what I would like to use if given excuse and time. All those options are mostly written in C:

    - QBE [1] - small compiler backend with nice IL

    - DynASM [2] - IIUC the laujit's backend, that can and is used by other languages

    - uBPF - Userspace eBPF VM. Depending on your DSL the eBPF toolchain could fit your use-case, but this would probably be the biggest excursion.

    [1] https://c9x.me/compile/

    [2] https://luajit.org/dynasm.html

    [3] https://github.com/iovisor/ubpf

  • how to build eBPF learning env on my Mac
    1 project | /r/eBPF | 21 Jan 2022
    There are eBPF-specific userspace implementations you can consider looking into but right now the best support for bpf would be the linux kernel so if the goal is learning you'll most likely want to run linux in a proper virtual machine (e.g. Qemu, VirtualBox, Parallels, etc.)
  • Bytecode for a Register Machine
    5 projects | /r/ProgrammingLanguages | 15 Feb 2021
    This may be entirely irrelevant to what you are looking for, but a good widely used finite register-based VM is the eBPF VM in the Linux Kernel. The IOVisor uBPF project (https://github.com/iovisor/ubpf) is a version of the VM in user space.

bpftime

Posts with mentions or reviews of bpftime. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-20.
  • eBPF Tutorial by Example 16: Monitoring Memory Leaks
    2 projects | dev.to | 20 Jan 2024
    Uprobe in kernel mode eBPF runtime may also cause relatively large performance overhead. In this case, you can also consider using user mode eBPF runtime, such as bpftime. bpftime is a user mode eBPF runtime based on LLVM JIT/AOT. It can run eBPF programs in user mode and is compatible with kernel mode eBPF, avoiding context switching between kernel mode and user mode, thereby improving the execution efficiency of eBPF programs by 10 times.
  • bpftime: Extending eBPF from Kernel to Userspace
    4 projects | dev.to | 14 Jan 2024
    In this blog, we are excited to introduce a new open-source user-space eBPF runtime: https://github.com/eunomia-bpf/bpftime. bpftime further expands the capabilities of eBPF, allowing existing eBPF tools and applications, such as BCC tools, bpftrace, Deepflow, etc., to run in non-privileged user space without any code modifications, while using the same libraries and toolchains as kernel eBPF.
  • The Secure Path Forward for eBPF runtime: Challenges and Innovations
    5 projects | dev.to | 16 Nov 2023
  • Bpftime: Userspace eBPF runtime for fast Uprobe and Syscall hook and Plugins
    4 projects | news.ycombinator.com | 14 Nov 2023
    Thanks for sharing your talk and insights! bpftrace is a wonderful tool, and the talk is great!

    In fact, bpftime can already run bpftrace in userspace for uprobes, without any modification: https://github.com/eunomia-bpf/bpftime/tree/master/example/b...

    (There might still need some bug fixes in some cases, eg. the signal handler to stop the bpf program...

What are some alternatives?

When comparing ubpf and bpftime you can also consider the following projects:

qbe-rs - QBE IR in natural Rust data structures

chaotix - The chaotix operating system! (Previously known as Magma or Psychix)

Befunge - lang befunge 93 fast

wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)

sljit - Platform independent low-level JIT compiler

bpf-developer-tutorial - eBPF Developer Tutorial: Learning eBPF Step by Step with Examples

minivm - A VM That is Dynamic and Fast

AFLplusplus - The fuzzer afl++ is afl with community patches, qemu 5.1 upgrade, collision-free coverage, enhanced laf-intel & redqueen, AFLfast++ power schedules, MOpt mutators, unicorn_mode, and a lot more!

LjTools - LuaJIT 2.0 bytecode parser, viewer, assembler and test VM. Lua 5.1 parser, IDE and debugger.

bpfman - An eBPF Manager for Linux and Kubernetes

Som - Parser, code model, navigable browser and VM for the SOM Smalltalk dialect

opentelemetry-go-instrumentation - OpenTelemetry Auto Instrumentation using eBPF