mirror of
https://github.com/frida/efni.git
synced 2026-11-08 08:05:55 -10:00
main
Efni
Building blocks for protocol-heavy GLib code, written in Vala.
Efni (Old Norse for "material") is the layer underneath Idun and frida-core. It provides:
Buffer,BufferBuilder,BufferReader: binary (de)serialization with explicit byte order and pointer size.PromiseandFuture: awaitable results for async code.ObjectBuilderandObjectReader: structured value access overGLib.Variantand JSON.VirtualStream: anIOStreambase class for user-space transports.- Socket helpers for TCP, UDP and Unix sockets, and socket address parsing.
FS: small filesystem helpers.Debuggerand friends: an abstract debugger interface, withGDB.Clientimplementing the GDB remote protocol.XpcClient: an XPC connection wrapper, on macOS.Error: the error domain shared by everything above.
Building
./configure
make
Distro Packaging
For building a shared library suitable for distro packaging:
$ ./configure --enable-shared --without-prebuilds=sdk && make
This builds libefni-1.0.so against system dependencies, using
Frida's toolchain for the Vala compiler.
Prerequisites on Omarchy / Arch Linux:
$ sudo pacman -S --needed glib2 libgee json-glib libgirepository
Prerequisites on Fedora:
$ sudo dnf install glib2-devel libgee-devel json-glib-devel \
gobject-introspection-devel
Prerequisites on Ubuntu:
$ sudo apt install libglib2.0-dev libgee-0.8-dev libjson-glib-dev \
libgirepository1.0-dev
Recipes for Arch (PKGBUILD), Fedora (.spec) and Debian/Ubuntu
(debian/) live in packaging/. The Fedora and Debian builds run
without network access, so they take Frida's toolchain as an
additional source, and expect a source tarball that includes the
releng submodule.
Description
Building blocks for protocol-heavy GLib code, written in Vala
99 KiB
0 Stars
1 Watchers
0 Forks