SWIG VS libffi

Compare SWIG vs libffi and see what are their differences.


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


A portable foreign-function interface library. (by libffi)
Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
SWIG libffi
13 7
4,494 2,477
1.9% 2.5%
9.8 6.7
3 days ago 2 days 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.


Posts with mentions or reviews of SWIG. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-11.


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 2021-12-01.
  • Libffi - A portable foreign-function interface library.
    1 project | reddit.com/r/github_trends | 7 May 2022
  • Raspberry Pi 3 Model B+ Guide from Scratch for Home Assistant Core
    1 project | reddit.com/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 | reddit.com/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 | reddit.com/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.
  • Can't compile gollvm on Void Linux
    1 project | reddit.com/r/voidlinux | 9 Jan 2021
    is itself related to the bug in the build script, for https://github.com/libffi/libffi dependency. Thus not an issue of your distro/beyond the scope of this bug.

What are some alternatives?

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


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

Cython - The most widely used Python to C compiler


JavaCPP - The missing bridge between Java and native C++

JNA - Java Native Access

PyCUDA - CUDA integration for Python, plus shiny features

sol2 - Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:

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

V8 - The official mirror of the V8 Git repository

jpype - JPype is cross language bridge to allow Python programs full access to Java class libraries.

PyJNIus - Access Java classes from Python