libffi VS Cython

Compare libffi vs Cython and see what are their differences.

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 Cython
11 79
3,053 8,912
1.5% 1.9%
7.9 9.8
about 1 month ago 3 days ago
C Python
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.

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.

Cython

Posts with mentions or reviews of Cython. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-10.
  • Ask HN: C/C++ developer wanting to learn efficient Python
    4 projects | news.ycombinator.com | 10 Apr 2024
  • Ask HN: Is there a way to use Python statically typed or with any type-checking?
    1 project | news.ycombinator.com | 6 Aug 2023
  • Cython 3.0
    1 project | news.ycombinator.com | 17 Jul 2023
  • How to make a c++ python extension?
    1 project | /r/learnpython | 12 Jun 2023
    The approach that I favour is to use Cython. The nice thing with this approach is that your code is still written as (almost) Python, but so long as you define all required types correctly it will automatically create the C extension for you. Early versions of Cython required using Cython specific typing (Python didn't have type hints when Cython was created), but it can now use Python's type hints.
  • Never again
    4 projects | /r/ProgrammerHumor | 21 May 2023
    and again, everything that was released after using an older version of cython.
  • Codon: Python Compiler
    9 projects | news.ycombinator.com | 8 May 2023
    Just for reference,

    * Nuitka[0] "is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11."

    * Pypy[1] "is a replacement for CPython" with builtin optimizations such as on the fly JIT compiles.

    * Cython[2] "is an optimising static compiler for both the Python programming language and the extended Cython programming language... makes writing C extensions for Python as easy as Python itself."

    * Numba[3] "is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code."

    * Pyston[4] "is a performance-optimizing JIT for Python, and is drop-in compatible with ... CPython 3.8.12"

    [0] https://github.com/Nuitka/Nuitka

    [1] https://www.pypy.org/

    [2] https://cython.org/

    [3] https://numba.pydata.org/

    [4] https://github.com/pyston/pyston

  • Slow Rust Compiler is a Feature, not a Bug.
    1 project | /r/rustjerk | 28 Apr 2023
  • Any faster Python alternatives?
    6 projects | /r/learnprogramming | 12 Apr 2023
    Profile and optimize the hotspots with cython (or whatever the cool kids are using these days... It's been a while.)
  • What exactly is 'JIT'?
    1 project | /r/ProgrammingLanguages | 10 Apr 2023
    JIT essentially means generating machine code for the language on the fly, either during loading of the interpreter (method JIT), or by profiling and optimizing hotspots (tracing JIT). The language itself can be statically or dynamically typed. You could also compile a dynamic language ahead of time, for example, cython.
  • Python executable makers
    2 projects | /r/Python | 26 Mar 2023
    Cython - - embed demo

What are some alternatives?

When comparing libffi and Cython 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.

djinni

PyPy

V8 - The official mirror of the V8 Git repository

mypyc - Compile type annotated Python to fast C extensions

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

Pyston - A faster and highly-compatible implementation of the Python programming language.

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.

Stackless Python

nelson - The Nelson Programming Language

Pyjion