2026-10-20 21:47:43 +02:00
2026-11-06 12:19:21 +01:00
2026-10-30 22:18:03 +01:00
2026-11-04 12:53:38 +01:00
2026-10-19 20:38:04 +02:00
2026-10-19 20:38:04 +02:00
2026-10-19 20:38:04 +02:00
2026-10-19 20:38:04 +02:00
2026-10-19 20:38:04 +02:00
2026-10-20 20:14:38 +02:00
2026-10-19 20:38:04 +02:00
2026-10-19 20:38:04 +02:00
2026-10-19 20:38:04 +02:00
2026-10-20 20:14:38 +02:00
2026-10-19 20:38:04 +02:00
2026-10-20 18:31:20 +02:00

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.
  • Promise and Future: awaitable results for async code.
  • ObjectBuilder and ObjectReader: structured value access over GLib.Variant and JSON.
  • VirtualStream: an IOStream base class for user-space transports.
  • Socket helpers for TCP, UDP and Unix sockets, and socket address parsing.
  • FS: small filesystem helpers.
  • Debugger and friends: an abstract debugger interface, with GDB.Client implementing 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.

S
Description
Building blocks for protocol-heavy GLib code, written in Vala
Readme
99 KiB
0 Stars 1 Watchers 0 Forks
1.0.0
Latest
2026-11-06 17:13:49 -10:00
Languages
Vala 92.2%
Meson 3.6%
C 1.8%
Batchfile 0.7%
Python 0.7%
Other 1%