quickjs VS chibicc

Compare quickjs vs chibicc and see what are their differences.

quickjs

Public repository of the QuickJS Javascript Engine. (by bellard)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
quickjs chibicc
65 21
7,641 8,504
- -
9.1 0.0
4 days ago 6 months ago
C C
GNU General Public License v3.0 or later 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.

quickjs

Posts with mentions or reviews of quickjs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-02.
  • Show HN: Happy Pi day with this PWA to cut 100k Pi digits offline
    1 project | news.ycombinator.com | 13 Mar 2024
    It uses service workers to cache static files, by the time it opens up you already free to be offline, try toggle network switch to verify.

    It has download link at bottom of the about page ([accdoo.app/about]) which you could then self host it by dropping into any static hosting services.

    btw, the Pi feature was by-product from the original App but I won't expand here, if you'd like to learn more, please checkout its two Show HN post (39115559 and 39138957) previously.

    [wiki]: https://en.wikipedia.org/wiki/Chudnovsky_algorithm

    [quickjs/pi]: https://bellard.org/quickjs/pi.html

    [pi_bigint.js]: https://github.com/bellard/quickjs/blob/master/examples/pi_b...

    [accdoo.app/about]: https://accdoo.app/about#releases

    [39115559]: https://news.ycombinator.com/item?id=39115559

    [39138957]: https://news.ycombinator.com/item?id=39138957

  • Ask HN: C/C++ plugin make JavaScipt end up with C/C++ binary?
    2 projects | news.ycombinator.com | 2 Mar 2024
    Just go with quickjs, I think this is what you are looking for.

    https://bellard.org/quickjs/

  • Show HW: accdoo cipher web app now fused with offline Pi cutter (100k digits)
    1 project | news.ycombinator.com | 2 Feb 2024
  • QuickJS JavaScript Engine
    1 project | news.ycombinator.com | 18 Jan 2024
  • A list of JavaScript engines, runtimes, interpreters
    23 projects | /r/learnjavascript | 10 Dec 2023
    QuickJS
  • Can you make your own JavaScript by implementing ECMAScript standard?
    10 projects | /r/learnjavascript | 10 Dec 2023
    I think QuickJS, written in C, is a user-"friendly" starting point for implementing ECMA-262. Documentation QuickJS Javascript Engine.
  • New QuickJS Release
    1 project | /r/hypeurls | 9 Dec 2023
    6 projects | news.ycombinator.com | 9 Dec 2023
    There is a readme on the project's main page: https://bellard.org/quickjs/

    The newsworthy bit here is that the activity seemed to have stalled for year or two and now Fabrice pushed a few fixes and made a new release.

  • GitHub
    1 project | /r/learnjavascript | 6 Dec 2023
    Just to demonstrate GitHub repositories do not necessarily reflect upon a programmers' body of work, Fabrice Bellard has one (1) repository published on GitHub, quickjs. Compare the list of work on Bellard's home page https://bellard.org/.
  • WinterJS
    6 projects | news.ycombinator.com | 28 Oct 2023
    > I am still confused, it's a JavaScript runtime intended to be deployed to JavaScript/Wasm runtimes?

    Seemingly.

    > Why does a JavaScript runtime need a JavaScript runtime?

    Because if you want to create a Service Worker server for CloudFlare Workers and other JavaScript/Wasm runtimes, that's the only option for doing that AFAIK.

    FWIW, this isn't a new idea. For example, Figma uses QuickJS (https://bellard.org/quickjs/) for their plug-in runtime: https://www.figma.com/blog/an-update-on-plugin-security/

chibicc

Posts with mentions or reviews of chibicc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-21.
  • Cwerg: C-like language that can be implemented in 10kLOC
    9 projects | news.ycombinator.com | 21 Mar 2024
  • Apple hiring compiler developers for improving Swift / C++ interoperability
    4 projects | news.ycombinator.com | 13 Jan 2024
  • GCC always assumes aligned pointer accesses
    2 projects | news.ycombinator.com | 20 Aug 2023
    If a --k&r mode was to be reliable, wouldn't it need to get specified first? Otherwise people would start relying on some edge case.

    If speed is not a requirement for the --k&r mode, you could just take the tis-interpreter and note that if it runs without UB, it is still much faster than an actual computer was when k&r were active.

    Would it even be possible to specify a variant of C that contains no UB (e.g. would define exactly what happens on unaligned access), but can compile practical existing C89 programs? I wonder if it could be written such that it could actually specify the behaviour consistently across the language intersection supported by both of e.g. GCC 2.95 and Chibicc[0].

    Or maybe there are so many bugs in GCC 2.95 that it would simply be infeasible? How much time would it take to specify?

    [0]: https://github.com/rui314/chibicc

  • EU to vote regulation that has a considerable potential to hurt OSS
    1 project | news.ycombinator.com | 15 Jul 2023
    I was on the Eclipse Foundation call a few days ago regarding this topic and they said there was a well-established 3-part test for this in the EU courts. But I don't think I managed to take a screenshot, sorry.

    Here is a snippet from the EU Blue Guide linked the from the Eclipse blog post:

    "Commercial activity is understood as providing goods in a business related context. Non-profit organisations may be considered as carrying out commercial activities if they operate in such a context. This can only be appreciated on a case by case basis taking into account the regularity of the supplies, the characteristics of the product, the intentions of the supplier, etc. In principle, occasional supplies by charities or hobbyists should not be considered as taking place in a business related context."

    I would consider GCC or React to fit this definition, while a hobby project like https://github.com/rui314/chibicc not to fit it.

  • Best practice to store context for a C compiler
    16 projects | /r/Compilers | 20 Jun 2023
    chibicc
  • SectorC: A C Compiler in 512 bytes
    4 projects | /r/C_Programming | 25 May 2023
    chibicc: https://github.com/rui314/chibicc (A reasonably digestible C implementation)
  • List of (open source) C compilers
    3 projects | news.ycombinator.com | 11 Apr 2023
  • Chibicc – A Small C Compiler
    1 project | /r/hypeurls | 13 Nov 2022
    5 projects | news.ycombinator.com | 13 Nov 2022
  • Are Hoistings Possible for C++?
    8 projects | /r/cpp | 17 Aug 2022
    When you say a fork of LLVM, am I correct in assuming that you specifically mean a fork of Clang? I don't see how the compiler backend would affect support for language extensions, regardless of whether it's an exception to that such as Tcc, Cproc, the MIR C jitter, lacc, 8cc, 9cc, and chibicc. Most of those are not for production, excluding Cproc and Tcc (at least according to Suckless or Oasis).

What are some alternatives?

When comparing quickjs and chibicc you can also consider the following projects:

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

8cc - A Small C Compiler

jerryscript - Ultra-lightweight JavaScript engine for the Internet of Things.

mold - Mold: A Modern Linker 🦠

mjs - Embedded JavaScript engine for C/C++

build-your-own-x - Master programming by recreating your favorite technologies from scratch.

edex-ui - A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.

SmallerC - Simple C compiler

Nuitka - Nuitka 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. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.

Co-dfns - High-performance, Reliable, and Parallel APL

esp8266-quickjs - An attempt on getting QuickJS working on ESP8266 hardware

uemacs - Random version of microemacs with my private modificatons