cl-autowrap VS cffi

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

cl-autowrap

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

cffi

The Common Foreign Function Interface (by cffi)
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 cffi
8 16
206 414
- 1.7%
1.5 4.0
6 days ago about 1 month ago
Python Common Lisp
BSD 2-clause "Simplified" License MIT License
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.

cffi

Posts with mentions or reviews of cffi. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-21.
  • A few newbie questions about lisp
    4 projects | /r/Common_Lisp | 21 May 2023
    When you want to do anything that breaks the nice bubble of your Lisp image, you might want to know a bit about your operating system's programming interface. This will come in handy if you ever need to wrap a library with CFFI. There are some things that are pretty inconvenient as a rule (like dealing with any protocol that uses network byte order), but if you stay within the bubble of your Lisp image, you won't really notice them.
  • *UPDATE* - CL-OBJC
    3 projects | /r/Common_Lisp | 6 Mar 2023
    I'm just posting the work that I have done over the last year or so on CL-Objc. I'm still blocked from better support (e.g., passing structs by value for frameworks like UIKit). I just wanted to post what I have done online for others interested in the work or motivated to collaborate on this.
  • Waiting on feedback - CFFI PR
    2 projects | /r/Common_Lisp | 2 Mar 2023
    Good morning ladies and gentlemen, I have been waiting on some feedback for PR in CFFI. This feature is blocking me from reviving CL-OBJC. Any help will be appreciated. Thank you in advance.
  • Anyone else able to kill threads in SBCL on M1 mac?
    1 project | /r/lisp | 8 Feb 2023
    Is that actually https://github.com/cffi/cffi/commit/33970351e71bb5f12ba56fc40270089e948ae112 ? I.e. after loading cl+ssl. (Although Hunchentoot does not interrupt threads)
  • Programming the Raspberry Pi GPIO pins using Common Lisp?
    5 projects | /r/lisp | 1 Feb 2023
    Maybe access the pins using CFFI, https://github.com/cffi/cffi package and one the libraries mentioned here? https://www.bigmessowires.com/2018/05/26/raspberry-pi-gpio-programming-in-c/
  • Why Functional Programming Should Be the Future of Software
    11 projects | news.ycombinator.com | 2 Nov 2022
  • Updating Quicklisp Packages
    1 project | /r/Common_Lisp | 8 Sep 2022
    FTR, on my system QL fetches CFFI 0.23.0 and the fix/error I'm talking about is https://github.com/cffi/cffi/blob/master/src/libraries.lisp#L106 and seems to have been added iin this PR https://github.com/cffi/cffi/pull/173/commits/263b38f4f2600dbacde8f2b313620c35a563c6df so the fix should be in CFFI 0.24.0 released 24 March 2021.
  • CFFI and frameworks on OSX
    1 project | /r/sbcl | 8 Sep 2022
    FTR: this is the PR https://github.com/cffi/cffi/pull/173/commits/263b38f4f2600dbacde8f2b313620c35a563c6df
  • interested in learning lisp, (specifically for games, but also for everything else including tui and gui applications for linux. currently have next to no programming knowledge, can i get forwarded some resources and some tips on what exactly i should do? any videos i should watch?
    17 projects | /r/lisp | 23 Jun 2022
    C: Alternatively (more difficult) you could try to wrap the underlying C layers of either of those mentioned under Python with CFFI. The C-based game engine, Raylib, is also wrappable this way. I finished a super cool walking simulator in CL with that, but it is more tedious than the others since raylib is really barebones.
  • Common Lisp
    18 projects | news.ycombinator.com | 2 Oct 2021
    I feel inspired to start Lisp after being disappointed with the "open" source scene of 2021. I'd rather pay LispWorks a yearly fee and be left alone than dealing with unbalanced people in the Python space. The free Lisp implementations also look somewhat isolated from the ideological wars.

    However, a C interface is required. Is this one the recommended solution? Is it really portable?

    https://common-lisp.net/project/cffi/

    What is the speed compared to a Python C extension? Are implementation-specific C interfaces faster (I guess they are)?

    Sorry for so many questions, but these can usually only be answered by people who have actually used the interface.

What are some alternatives?

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

c2ffi - Clang-based FFI wrapper generator

go-ffi - Go bindings to libffi

chibi-scheme - Official chibi-scheme repository

racket - The Racket repository

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

trial - A fully-fledged Common Lisp game engine

mal - mal - Make a Lisp

cl-parametric-types - (BETA) C++-style templates for Common Lisp

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

paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"

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

cl-cookbook - The Common Lisp Cookbook