No description
  • Rust 92.5%
  • C 5.8%
  • Shell 1.2%
  • Nix 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nix-Enthusiast 45374d4e50 Domain name is updated
Changes to be committed:
	modified:   README.md
2026-03-12 17:27:50 +03:00
include Added: 2026-02-08 00:14:16 +03:00
media String Conversion Revamp 2024-10-25 15:15:29 +03:00
src Added: 2026-02-07 22:24:25 +03:00
.gitignore Changes at CI/CD and Gitignore: 2026-02-06 09:44:58 +03:00
.gitlab-ci.yml Fixes: 2026-02-08 03:09:46 +03:00
Cargo.lock Fixed: 2026-02-07 20:11:47 +03:00
Cargo.toml Fixed: 2026-02-07 20:11:47 +03:00
default.nix Fixes: 2026-02-08 03:31:06 +03:00
LICENSE Big update! 2024-10-19 19:40:28 +03:00
PKGBUILD Fixes: 2026-02-08 03:31:06 +03:00
README.md Domain name is updated 2026-03-12 17:27:50 +03:00

banner

UniLDD is designed to bring parsing objects to any language (has a C FFI library).

Build Status GitLab Release GitLab Contributors License: BSD-3 Clause

⭐️ Features:

  • Detailed information! Some of them are:
    • Name of the OS (Windows, macOS, Linux, etc.)
    • File type (Core dump, shared library, executable, etc.)
    • ISA type (X86_64, ARM64, RISC-V, etc.)
    • CPU Subtype1
    • Name of the linker2
    • Which libraries are linked against
  • Parses without loading objects. Therefore, you can even parse shady objects like malwares3
  • Error codes and explanations to make error handling easier.
  • A Basic and built-in logger to get real-time information.

Installation

Automated Installation

Using default.nix

Installation

If Nix Package Manager is available in the system, you can use default.nix.

  • Clone the git repository

    git clone https://git.fnpl.rocks/nix-enthusiast/unildd.git
    
  • Go into unildd directory

    cd result
    
  • Build the package

    nix-build default.nix
    
  • Go into result directory

    cd result
    
  • The library and the header file will be under the directory named lib and include respectively

    $ ls result/*
    result/include:
    unildd.h
    
    result/lib:
    libunildd.a  libunildd.so
    $
    
  • Then, you can delete the build dependencies with nix-collect-garbage

Using PKGBUILD

If your platform is Arch Linux, you can use PKGBUILD

Requirements
  • base-devel package (Installable via pacman -S base-devel.)
Installation
  • Clone the git repository

    git clone https://git.fnpl.rocks/nix-enthusiast/unildd.git
    
  • Go into directory unildd

    cd unildd
    
  • Build and install the package

    makepkg -si
    
  • The library and the header will be in /usr/lib and /usr/include directories, respectively.

Manual Installation

Installation process is shown under a Linux system. Different platforms may implement their own naming scheme for libraries.

For common platforms:

Platform Name Static Library Import library Dynamic Library
Windows libunildd.a libunildd.dll.a libunildd.dll
macOS libunildd.a - libunildd.dylib
Linux, BSDs, and Most of the Other Unix-Like Systems libunildd.a - libunildd.so

Using Tarballs

Currently UniLDD provides prebuilt tarballs for

  • Linux (x86_64/aarch64-glibc/musl)4
  • Windows (x86_64/aarch64)
  • macOS (x86_64/aarch64)

If your platform is in this list, continue to the other step. For the rest, please continue from From Source Code

  • Install the latest build from the releases section.

  • Extract the downloaded tar file

    # Version 1.0.0 is used as an example, change it with version of yours if necessary
    tar -xvf unildd-1.0.0-aarch64-unknown-linux-gnu.tar.gz
    
  • The library and the header files will be extracted to the current directory

From Source Code

Basically:

  • Clone the git repository:

    git clone https://git.fnpl.rocks/nix-enthusiast/unildd.git
    
  • Go into the git repository:

    cd unildd
    
  • Compile build with cargo:

    cargo build --release
    
  • Put the output files to desired destination:

    cp target/release/{libunildd.so,libunildd.a} /my/amazing/project/
    
  • Also do not forget to copy the header file:

    cp header/unildd.h /my/amazing/project/
    

License

This library is licensed under BSD-3 Clause License

The resources used to make this library are cited as comments in the respective source files which they were used.

🎉 Thanks to:

  • m4b for the goblin crate which this library gets its power by!

  1. CPU subtype is a macOS-only feature which tells what kind of CPU model the code is optimized for. ↩︎

  2. It has some caveats. See the wiki (currently work-in-progress) for further details. ↩︎

  3. That doesn't mean I am liable for any damages done by this project and files you parsed. Take your own risk! ↩︎

  4. musl version of the library is statically compiled version of UniLDD library with Musl Libc ↩︎