Minimal and opinionated eBPF tooling for the Rust ecosystem
Full Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.23.1...v0.23.2
Map::lookup_bloom_filter
for looking up elements in a bloom filterFull Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.23.0...v0.23.1
novendor
featurevendored
feature to use vendored copies of all needed librariesProgram::attach_ksyscall
for attaching to ksyscall handlersProgram::test_run
as a way for test-running programsOpenMap::initial_value{,_mut}
for retrieving a map's initial valuereplace
functionality to Xdp
typeconsume_raw
and poll_raw
methods to RingBuffer
typerecursion_misses
attribute to query::ProgramInfo
typeAsRawLibbpf
impl for OpenProgram
btf::types::MemberAttr::Bitfield
variantlibbpf-sys
dependency to 1.4.0
1.71
novendor
feature in favor of having disableable default featurestruct_ops
shadow objects for generated skeletonsSkeletonBuilder::clang_args
to accept an iterator of arguments instead of a string--clang-args
argument to make
and build
sub-commands<project>_types
module as opposed to having multiple modules for various sections (.bss
, .rodata
, etc.)MaybeUninit
libbpf-sys
dependency to 1.4.0
1.71
Full Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.22.1...v0.23.0
Xdp
type for working with XDP programsObject
typeFull Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.22.0...v0.22.1
Error
type:
enum
with data variants with struct
hiding internal structurequery::ProgramInfo
and query::ProgInfoIter
to make them more readily usableBtf::from_vmlinux
constructor and adjusted Btf::from_path
to work with both raw and ELF filesObjectBuilder
:
name
method fallibleopts
to return a reference to libbpf_sys::bpf_object_open_opts
open_memory
constructorpin_root_path
setterAsRawLibbpf
trait as a unified way to retrieve libbpf
equivalents for libbpf-rs
objectsMap::update_batch
methodSend
for Link
1.65
bitflags
dependency to 2.0
Error
enum in favor of anyhow::Error
1.65
Full Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.21.2...v0.22.0
MapHandle
objects (formerly possible only on Map
objects)1.64
Default
impl for generated struct
types containing pointers1.64
Full Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.21.1...v0.21.2
pub
visibilityFull Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.21.0...v0.21.1
TcHook::get_handle
and TcHook::get_priority
methods for restoring TcHook objectProgram::get_fd_by_id
and Program::get_id_by_fd
methods for restoring bpf management dataMap::is_pinned
and Map::get_pin_path
methods for getting map pin statusProgram::attach_iter
for attaching of programs to an iteratorMap::delete_batch
method for bulk deletion of elementsMap
typesMapHandle
which provides most functionality previously found in Map
Map
objects standalone (i.e. maps not created by libbpf)<object-type>::fd()
methods in favor of <object-type>::as_fd()
btf_type_match!
macro, adding support for most of Rust's match
capabilitiesskel
module exposing skeleton related traitsMap
created or opened without going through Object
would leak file descriptorslibbpf_sys::bpf_object_open_opts
object initializationBorrowedFd
instead of raw file descriptorsRingBufferBuilder::add
enforce that self
cannot outlive the maps passed into itError::System
variant textual representation to include errno
stringlibbpf-rs
's SkelBuilder
, OpenSkel
, and Skel
traitsFull Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.20.1...v0.21.0
btf
moduleMap
constructors from pinned paths and from map idMap::as_libbpf_bpf_map_ptr
and Object::as_libbpf_bpf_object_ptr
accessorsMapInfo
type as a convenience wrapper around bpf_map_info
Map::info
to Map
to make it easier to derive MapInfo
from a Map
instanceset_log_level
, log_level
, and autoload
methods to OpenProgram
Link::get_fd
method1.63
libbpf-rs
's BTF support internally for skeleton generation-fno-stack-protector
to clang
Full Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.20.0...v0.20.1
Linker
typeProgram::attach_uprobe_with_opts
for attaching Uprobes with additional optionstproxy
exampleRingBuffer::poll
to block indefinitelyOpenProgram::prog_type
OpenProgram::insns
& Program::insns
MapType::is_supported
, ProgramType::is_supported
, and ProgramType::is_helper_supported
methodsPerfBuffer::as_libbpf_perf_buffer_ptr
to access underlying libbpf-sys
objectMap
methods to work on shared receiversLink::open
constructor to be a static methodBox
contentsSend
for PerfBuffer
and RingBuffer
Clone
and Debug
Sync
for generated skeletonsrustfmt
optionalFull Changelog: https://github.com/libbpf/libbpf-rs/compare/v0.19.1...v0.20.0