esrever
quickjs
esrever | quickjs | |
---|---|---|
2 | 67 | |
887 | 7,744 | |
- | - | |
0.0 | 9.1 | |
over 2 years ago | 4 days ago | |
JavaScript | C | |
MIT License | GNU General Public License v3.0 or later |
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.
esrever
-
Zig 0.9.0
> it cannot leave the input data as an undecoded bag of bytes
But all it's doing here is taking a hex string (which is entirely ASCII) and converting it into the respective hex representation. Since ASCII translates unambiguously to bytes, it doesn't really matter if `str[0]` is operating on a byte stream, codepoint stream or grapheme stream, because in utf8, they're all the same thing as long as we're within the ASCII range.
Where things get hairy is stuff like `str.reverse()` over arbitrary strings that may or may not be in ASCII. This repo[0] talks about some of the challenges associated with conflating characters with either bytes or codepoints. The problem is that programming languages often approach strings from the wrong angle: you can't just tack on handling of multi-byte codepoints on top of ascii handling; you lose O(1) random access and you don't actually model the linguistic domain properly by doing so, because in the first place, humans think of characters not in terms of bytes or codepoints, but in terms of grapheme clusters. Clustering correctness falls deep in the realm of linguistics, and is therefore arguably more suitable to be handled by a library than a programming language.
[0] https://github.com/mathiasbynens/esrever
-
Awesome javascript one-liners to look like a pro
Here's a take on the first snippet (string reversal) by Mathias Bynens (Staff engineer at Google): https://github.com/mathiasbynens/esrever . If you read that README you'll quickly realize that readability of the code isn't all that high in the list of priorities: making it work correctly in the first place is actually a huge can of worms!
quickjs
-
What Is in a Rust Allocator?
You may be familiar, but I just wanted to show how it is available in many C implementations and is used, for example, in QuickJS: https://github.com/bellard/quickjs/blob/0c8fecab2392387d76a4...
-
Show HN: Happy Pi day with this PWA to cut 100k Pi digits offline
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?
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)
- QuickJS JavaScript Engine
-
A list of JavaScript engines, runtimes, interpreters
QuickJS
-
Can you make your own JavaScript by implementing ECMAScript standard?
I think QuickJS, written in C, is a user-"friendly" starting point for implementing ECMA-262. Documentation QuickJS Javascript Engine.
-
New QuickJS Release
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
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/.
What are some alternatives?
arocc - A C compiler written in Zig.
Duktape - Duktape - embeddable Javascript engine with a focus on portability and compact footprint
jerryscript - Ultra-lightweight JavaScript engine for the Internet of Things.
mjs - Embedded JavaScript engine for C/C++
edex-ui - A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.
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.
esp8266-quickjs - An attempt on getting QuickJS working on ESP8266 hardware
react-native-desktop-qt - A Desktop port of React Native, driven by Qt, forked from Canonical
v8go - Execute JavaScript from Go
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
bud - The Full-Stack Web Framework for Go
chibicc - A small C compiler