cl-autowrap VS c2ffi

Compare cl-autowrap vs c2ffi and see what are their differences.

cl-autowrap

(c-include "file.h") => complete FFI wrapper (by rpav)

c2ffi

Clang-based FFI wrapper generator (by rpav)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
cl-autowrap c2ffi
8 4
206 219
- -
1.5 6.3
6 days ago 8 days ago
Python C++
BSD 2-clause "Simplified" License GNU Lesser General Public License v3.0 only
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.

cl-autowrap

Posts with mentions or reviews of cl-autowrap. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-14.
  • Why Is Common Lisp Not the Most Popular Programming Language?
    8 projects | news.ycombinator.com | 14 Feb 2024
    > Lack of access to the C libraries.

    ???

    I recently started learning Common Lisp for fun (and fun it is!) and the ease of accessing C libraries was one of the things that surprised me in a positive way.

    Using https://github.com/rpav/cl-autowrap one can simply write (c-include "file.h") and the API defined in "file.h" is accessible from Lisp. I can't think of a simpler way.

    Even without cl-autowrap, FFI using https://cffi.common-lisp.dev/ seems simple enough.

  • An Idea for Piggybacking Python (language) ecosystem
    3 projects | /r/lisp | 5 Dec 2022
    I think the closest is cl-autowrap. I can imagine a higher level wrapper around it by which it can translate the python header file into the CL counterpart, although I'm not sure how much work the translation might entail. Also, because python and lisp semantics can differ considerably, the generated code might be trying to do weird things - again an issue of translation.
  • Why Functional Programming Should Be the Future of Software
    11 projects | news.ycombinator.com | 2 Nov 2022
    Common lisp has a "pretty OK" story for calling C code whenever some speed is needed [0,1]. In my opinion, they suffer from some of the documentation/quick start problems that common lisp has, but they're otherwise usable.

    Some of Naughty Dog's late 90's/early 2000's games (Jak and Daxter, Jak II) were written in a lisp called GOAL, Game Oriented Assembly Lisp [2]

    [0] https://github.com/rpav/cl-autowrap

  • Common Lisp language extensions wish list?
    2 projects | /r/Common_Lisp | 12 Oct 2022
    The closest thing to what you request, that I'm aware of, is cl-autowrap (to use C code from Lisp) but it is not standard in any way. CFFI is the de facto standard for using C from Lisp across different implementations.
  • I have bolted together ECL and the Irrlicht game library
    4 projects | /r/Common_Lisp | 27 Jan 2022
    :claw tracks back to 2017 as a fork of cl-autowrap with cl-autowrap/pull/83 feature.
  • Common Lisp
    18 projects | news.ycombinator.com | 2 Oct 2021
    If you're interested in FFI, then yeah CFFI is the standard. The other comments addressed speed, I also wanted to point out https://github.com/rpav/cl-autowrap which is built on top of CFFI and can help get a wrapper up and running faster. After using autowrap's c-include you can then use CFFI basically like normal or some useful autowrap/plus-c's helper functions -- e.g. in one project, I have an SDL_Event (https://wiki.libsdl.org/SDL_Event) and to access event.key.keysym.scancode I have a helper function that's just (plus-c:c-ref event sdl2-ffi:sdl-event :key :keysym :scancode). Last year I wanted to try out using FMOD, and even though it's closed source and has a (to me) "interesting" API things worked easily: https://gist.github.com/Jach/dc2ec7b9402d0ec5836a935384cacdc... More work would be needed to make a nice wrapper, type things more fully, etc. but depending on the C library you might find someone's already done that (or made a start) and made it available from quicklisp.
  • [Common Lisp] Best Libraries for Interfacing with UNIX-like Operating Systems?
    3 projects | /r/Common_Lisp | 6 Sep 2021
    In recent years there has also been cl-autowrap; caveats -
  • Alternative to ECL?
    5 projects | /r/lisp | 27 Apr 2021
    There is the cl-autowrap that can generate lisp packages from C header filesc- I am unsure if it sticks to ANSI C or goes beyond. It inturn depends on c2ffi for the first time around.

c2ffi

Posts with mentions or reviews of c2ffi. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-26.
  • sketch, sdl2, c2ffi on M1 Mac?
    6 projects | /r/Common_Lisp | 26 Nov 2022
    Quickloading :sketch or :sdl2 wants the c2ffi library which seems to be available on neither Quicklisp nor Homebrew. Downloading that library from source and following the build instructions (and several alternative variants found by Googling ) leads to errors like:
  • C Isn't a Programming Language Anymore
    4 projects | news.ycombinator.com | 7 Nov 2022
    > C compiler based tool that outputs DWARF or DWARF-like debug output that actually lays out everything

    That sounds like C2FFI: https://github.com/rpav/c2ffi

    The only language ecosystem where I've seen it used is Common Lisp. But it emits plain JSON and depends only on LLVM (albeit a specific version thereof), and I don't see any reason why you couldn't build e.g. a Python auto-binding library on top of it.

  • Alternative to ECL?
    5 projects | /r/lisp | 27 Apr 2021
    There is the cl-autowrap that can generate lisp packages from C header filesc- I am unsure if it sticks to ANSI C or goes beyond. It inturn depends on c2ffi for the first time around.
  • Installing c2ffi on Ubuntu
    2 projects | dev.to | 17 Feb 2021
    git clone https://github.com/rpav/c2ffi git checkout -b llvm-11.0.0 refs/remotes/origin/llvm-11.0.0 cd build cmake .. # -DBUILD_CONFIG=Release LIBRARY_PATH=/usr/lib/llvm-11/lib/ make # -j8 sudo checkinstall

What are some alternatives?

When comparing cl-autowrap and c2ffi you can also consider the following projects:

cffi - The Common Foreign Function Interface

c-mera - Next-level syntax for C-like languages :)

chibi-scheme - Official chibi-scheme repository

mal - mal - Make a Lisp

cl-rashell - Resilient replicant Shell Programming Library for Common Lisp

CMake - Mirror of CMake upstream repository

claw - Common Lisp autowrapping facility for C and C++ libraries

cl-sdl2-image - SDL_image 2.0 wrapper

cl-sdl2 - Common Lisp bindings for SDL2 using C2FFI.