libddwaf VS purego

Compare libddwaf vs purego and see what are their differences.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
libddwaf purego
1 24
34 2,305
- 2.2%
8.6 7.9
10 days ago about 2 months ago
C++ Go
GNU General Public License v3.0 or later Apache License 2.0
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.

libddwaf

Posts with mentions or reviews of libddwaf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-08.
  • Go 1.21 will (likely) have a static toolchain on Linux
    7 projects | news.ycombinator.com | 8 Apr 2023
    Even in C there can be issues. the nokigiri ruby gem builds (or used to build) libxml and libxslt (which are pure C) and has to make effort remove a couple of GNUisms.

    For C++ we were faced with some issues, so the process we ended up with is:

    - build musl, install it in some location

    - inject a few GCC libs and linux headers required for C runtime to have the above location be a proper sysroot for clang to use

    - build LLVM libc++ and a few libs (e.g libunwind) as static libs against that sysroot using clang, and inject them into the sysroot

    - build whatever C++ final product we want against the sysroot using clang, statically linking libc++ in

    - for a dynamic lib, remove dynamic reference to some shared libs (can't recall if it's libc.so or ld.so). also, hide all symbols from libc++ and load with bind local so that when loaded the shared lib prefers its internal symbols (which would make it crash if it jumps to another libc++) and does not pollute the symbol namespace with its internal ones (which would make another lib crash if it jumps to the internal libc++)

    - for an executable binary instead of a lib, dynamic reference would instead need to be altered so that it works for both

    It all hinges on musl being a subset of glibc, which is not entirely true either (see the musl website for differences in behaviour, which may or may not matter depending on the piece of software)

    https://github.com/DataDog/libddwaf/blob/c6a90d39d93f04ebb5e...

purego

Posts with mentions or reviews of purego. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-11-28.
  • Tk9.0: CGo-free, cross platform GUI toolkit for Go
    3 projects | news.ycombinator.com | 28 Nov 2024
  • Go is my hammer, and everything is a nail
    24 projects | news.ycombinator.com | 12 Aug 2024
    https://ebitengine.org/en/documents/install.html

    For anything other than windows:

    > Installing a C compiler

    > A C compiler is required as Ebitengine uses not only Go but also C.

    I mean, even on platforms without cgo, it's it working magically?

    No; it's using https://github.com/ebitengine/purego, which is:

    > A library for calling C functions from Go without Cgo.

    Like... I mean.... okaaaay, it's not cgo, but it's basically cgo? ...but it's no cgo so you can say 'no cgo' on your banner page?

    Seems kind of like... this is maybe not the right hammer for gamedev.

  • How I build simple Mac apps using Go
    2 projects | dev.to | 15 Jul 2024
    The other big thing we're working towards is making DarwinKit not use CGO at all! Using purego, we can call into Apple frameworks without involving CGO. This will improve build time, make smaller binaries, and allow DarwinKit to be used in programs that need to avoid CGO for whatever reason.
  • Show HN: Sqinn-Go is a Golang library for accessing SQLite databases in pure Go
    14 projects | news.ycombinator.com | 4 Oct 2023
  • Netgate upstreams FreeBSD support to the purego project
    1 project | /r/Netgate | 27 Aug 2023
    Click here to view the commit: https://github.com/ebitengine/purego/commit/1a4ea678b5a7598275a28e787179da1b7a058b11
    1 project | /r/PFSENSE | 27 Aug 2023
    Click here to view the commit: https://github.com/ebitengine/purego/commit/1a4ea678b5a7598275a28e787179da1b7a058b11
  • SIMD in Go
    7 projects | /r/golang | 9 Jul 2023
    Maybe interesting for you: https://github.com/ebitengine/purego
  • Ideas for GUI libraries?
    9 projects | /r/golang | 10 Jun 2023
    most X11 functionality can be accessed via xgb|xgbutil (jezek has a current fork). nucular makes use of it via shiny. OpenGL and such libraries can be assumed to exist on those systems, so directly calling those c libraries without cgo is a possibility. Ebiten is currently working on it: purego.
  • Go 1.21 will (likely) have a static toolchain on Linux
    7 projects | news.ycombinator.com | 8 Apr 2023
  • The Simplicity of Single-File Golang Deployments
    10 projects | news.ycombinator.com | 22 Mar 2023
    In the malware reverse engineering scene, there are a lot of forks of the upstream "debug" go library, because it allows loading, parsing, compiling and executing libraries from disk (rather than in-kernel or in-userspace).

    And there's also "purego" as an implementation that directly generates shellcode.

    Maybe those will help you, too?

    I am just mentioning these because for my use cases those approaches worked perfectly, CGO free.

    [1] https://github.com/Binject/debug

    [2] https://github.com/ebitengine/purego

What are some alternatives?

When comparing libddwaf and purego you can also consider the following projects:

sokol-tools - Command line tools for use with sokol headers

nocgo - dlopen in go without cgo

gcc-static-linking

gamen - Cross-platform GUI window creation & management library in Go

wazero - wazero: the zero dependency WebAssembly runtime for Go developers

barcode-server - A simple daemon to expose USB Barcode Scanner data to other services using Websockets, Webhooks or MQTT.

go - The Go programming language

rust-plus-golang - Rust + Go — Call Rust code from Go using FFI

evcxr

iup-go - Cross-platform UI library with native controls

go-simd - SIMD implementation in Go

go-plugin - Golang plugin system over RPC.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured

Did you konow that C++ is
the 6th most popular programming language
based on number of metions?