libffi VS V7

Compare libffi vs V7 and see what are their differences.

libffi

A portable foreign-function interface library. (by libffi)

V7

Embedded JavaScript engine for C/C++ (by cesanta)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
libffi V7
11 3
3,052 1,401
1.5% 0.0%
7.9 1.8
about 1 month ago over 3 years ago
C C
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
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.

libffi

Posts with mentions or reviews of libffi. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-25.
  • Error when installing .deb
    2 projects | /r/pop_os | 25 Feb 2023
    Ok, there is a missing dependency, libffi6, which cannot be installed, because it isn't at repos. You can either install it via downloading from other repos (there is a chance in the debian repo), or via compiling on your own (you can start with paying a visit to official site: https://sourceware.org/libffi/). Either way, move carefully and never forget when a dependency is missing, it may be a start of a "missing dependencies hell". And please, be caution, because you can break your system quite easily.
  • Your favorite binding?
    4 projects | /r/raylib | 16 Jan 2023
    I've been working in implementing libffi into Euphoria so we can call Raylib functions directly. Previously, Euphoria did not support passing structures by value and only occasionally could we get away with "faking" it by passing int type values directly (but not float types). Raylib is the first library I've run into that makes heavy use of passing structures by value, so it's been an interesting challenge. My original proof of concept worked well with libffi built as a shared library, so now I'm working on building libffi directly into the backend of Euphoria. Then we'll be off and running with full support for Raylib!
  • Compiler...from scratch
    1 project | /r/SoftwareEngineering | 21 Dec 2022
    I did some more looking around, and I think you should take a look into libffi. It has most of the dirty work done for you, and you can hook it up with your language.
  • kivy-ios / initial build with toolchain keeps getting stuck here (checking for suffix of executables...) after updating macOS and xcode... any thoughts? Thanks!
    2 projects | /r/kivy | 1 Aug 2022
    The last line of output is from configure and appears to be during building of libffi recipe - apparently executing the generate-darwin-source-and-headers.py from libffi repository
  • Libffi - A portable foreign-function interface library.
    1 project | /r/github_trends | 7 May 2022
  • Raspberry Pi 3 Model B+ Guide from Scratch for Home Assistant Core
    1 project | /r/smarthome | 29 Dec 2021
    ok... I did my python 3.9 upgrade on my Rpi3b+ ... here's what I learned: 1) If you're running Debian Buster, you really probably want to upgrade to Bullseye first https://www.tomshardware.com/how-to/upgrade-raspberry-pi-os-to-bullseye-from-buster If you stay on buster, then homeassistant won't start until you build libffi-3.3 as below: 2021-12-29 16:51:14 ERROR (MainThread) [homeassistant.auth.providers] Unable to load auth provider homeassistant: libffi.so.7: cannot open shared object file: No such file or directory https://community.home-assistant.io/t/python-install-on-raspberry-pi-os/241558/12 wget "https://github.com/libffi/libffi/releases/download/v3.3/libffi-3.3.tar.gz" tar zxf libffi-3.3.tar.gz cd libffi-3.3 ./configure sudo make install sudo ldconfig Other than that, it was pretty straightforward. Do be aware that after you redeploy home assistant, a LOT of stuff is happening in the background and it will take a while before everything comes up. Don't freak out. Don't reboot or power cycle. Instead, do this: tail -f /var/log/homeassistant/home-assistant.log and watch the updates
  • Installing Python in Ubuntu 20.04
    2 projects | dev.to | 1 Dec 2021
    build-essential installs everything required for compiling basic software written in C and C++ in this case Python. Read more... zlib1g-devis the development package of the compression library that implements the deflate compression methods and essential in Python's installation and other installations as well. Read more... libncurses5-dev is the development package for the curses library that provides a terminal-independent screen-painting and keyboard-handling tool. Read more... libgdbm-dev is a development library for GDBM whose functionality is to store key/data pairs in a data file. Read more... libnss3-dev Read more... libssl-dev Read more... libreadline-dev Read more... libffi-dev Read more... libsqlite3-dev Read more... wget Read more... libbz2-dev Read more... In the next step we can either manually download the latest release of Python from the Python Official Release page or use wget which we have installed in previous command. To download using wget, paste the following command in the terminal to download Python in the computer.
  • buildozer -v android debug error
    4 projects | /r/kivy | 2 Nov 2021
    [INFO]: -> running basename https://github.com/libffi/libffi/archive/v3.3.tar.gz
  • Part 1. Small Intro to SWIG
    1 project | /r/perl | 22 Oct 2021
    libffi C library
  • Julia ❤ Python
    5 projects | dev.to | 24 Jul 2021
    If you have read my earlier posts you know I love multilingual programming. One important part of multilingual programming is how to interface one language with other. Typically this is called FFI or foreign function interface. At the lowest level often there are libraries (aka bindings) to talk across languages or across implementations of same language e.g. libffi. In my undergrad we did a group project where we created language bindings to separate algorithmic part written in python and opencv and X11 logic in c.

V7

Posts with mentions or reviews of V7. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-02.
  • Flattening ASTs (and Other Compiler Data Structures)
    7 projects | news.ycombinator.com | 2 Jul 2023
    I used such a succinct AST structure to implement a JavaScript parser and interpreter for a severely memory constrained environment (embedded): V7 (https://github.com/cesanta/v7)

    We later switched to a ast->bytecode compilation step but for a while the implicit AST was directly traversed during interpretation.

  • Microvium Is Small
    4 projects | news.ycombinator.com | 21 Jun 2022
    Nice! A few years ago I took a stab at this problem space with https://github.com/cesanta/v7 ; with fun tricks like in-place compacting GC, stdlib JS object graph "frozen" in rom etc
  • JavaScript Is Weird
    7 projects | news.ycombinator.com | 28 Jun 2021
    https://github.com/cesanta/v7

    Languages are not all equal nor do they all function in the same way, and that's not my opinion.

    Javascript syntax itself is one thing, and you can certainly feel free to Javascriptify some C++ libraries and make it all look a certain way for specific tasks, while managing things behind the scenes, up to a point... but there is no getting around the fact that SOMEONE and some languages are needed to implement low level systems functionality.

    the power of Cython or the Python C FFI is that it allows you to script/glue modular native code.

    You then state "C++14 may have been ratified 7 years ago but it's not the target code your build chain spits out"

    no, a C++ COMPILER spits out assembler code that then gets assembled and linked into an executable.

    The C++ or C code corresponds directly to a given set of assembler instructions which correspond directly to CPU instructions.

    You claim that Python programming of microcontrollers is mainstream, but this is not true nor possible. Python SCRIPTING of code modules (that cannot be written in Python) is certainly one way to assemble a system from pre-built legos.

    If you refer to knowing what I'm talking about as gatekeeping and egoism, might I suggest that you insist less forcefully in the correctness of incorrect things you state? we could be done with this spat in short order if YOU would refrain from speaking falsehoods. lies.untrue things.

    I look forward to your lisp c compiler. make sure that it's 100% lisp from the bottom up, or I'll consider you're having ceded my point. Consider that the lisp you author in has a garbage collection system that lisp cannot have written originally, nor has any semantics for the underlying memory structures of, but hey, I guess if one is committed to pretending that all languages are equal for all tasks, who am I to question ones self-identification with a given language.

What are some alternatives?

When comparing libffi and V7 you can also consider the following projects:

SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.

V8 - The official mirror of the V8 Git repository

djinni

Duktape - Duktape - embeddable Javascript engine with a focus on portability and compact footprint

Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages

nelson - The Nelson Programming Language

Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.

ChaiScript - Embedded Scripting Language Designed for C++