tweetnacl | janet | |
---|---|---|
2 | 79 | |
21 | 3,306 | |
- | 0.6% | |
0.0 | 9.4 | |
about 7 years ago | 5 days ago | |
C | C | |
MIT License | MIT License |
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.
tweetnacl
-
Why Lisp? (2015)
Because that product was an embedded system running on a very small SoC. It only had 1MB of flash and 192k of SRAM. It's theoretically possible to run CL on a system that small -- Coral Common Lisp ran on a Mac Plus with 1MB of RAM back in the 1980s -- but nothing off-the-shelf will do that today.
(I did, however, put a little Scheme interpreter on it as an easter egg :-)
I do have some CL code that supports the crypto project. The back-end for this:
https://stage.sc4.us/sc4/sc4tk.html
is written in CL (though all the actual encryption is done client-side in Javascript). I also have some prototype crypto code that I don't really use for anything, including this double-ratchet implementation:
https://github.com/rongarret/tweetnacl/blob/master/ratchet.l...
and some elliptic curve code:
http://www.flownet.com/ron/lisp/djbec.lisp
-
Teaching Compilers Backward
Of course. There are many. Any binary format. Any ASN.1 format. DEF and LEF for hardware descriptions. The output of mysqldump.
Here's another example:
https://github.com/rongarret/tweetnacl/blob/master/ratchet.l...
starting at line 82. (That's one that I designed.)
janet
-
Scriptable Operating Systems with Lua [pdf]
Seems like a perfect use-case for Janet. (https://janet-lang.org/) A fast minimal VM like Lua, but even more extensible than Lua by being a "Lisp" with macro and C extension capabilities. Not a true Lisp, it's very pragmatic and performance-oriented. But it keeps the good stuff.
-
Ask HN: A Lisp with Cargo/NPM like build system?
You might be looking for: https://janet-lang.org/
It comes with a build tool `jpm` which installs dependencies globally by default, but you can have it be installed in your project folder as well.
-
Babashka: Fast native Clojure scripting runtime
I like Clojure, but I never had any good opportunities to use it other than for a few small hobby projects. It is unfortunate that it is so huge with tons of dependencies and no simpler native implementation. I started looking at various LISPs and Schemes to find something lighter to use instead and ended up settling for Janet that I think is Clojure-like enough to be comfortable to use, but in a small native binary with no dependencies and can be embedded in other native programs. I am sure for big, real, projects that Clojure makes more sense, but for my hobby projects and scripts I do not think I will install it again. I am still happy for the things I learned from learning Clojure. It was a real eye-opener for an old OO-programmer.
https://janet-lang.org/
- Janet Language
- Why Fennel?
- Embeddable Common Lisp 23.9.9
-
Sharpscript: Lisp for Scripting
One might also check out Janet for quick scripting tasks.
https://janet-lang.org
-
Red Programming Language
Thanks!
I thought about another multiplatform, homoiconic, highly compact language: https://janet-lang.org/ (takes 803 kb on my machine).
It has no types though.
-
Systems Programming with Racket
Racket is great, and if you like it you might find Rash interesting:
https://rash-lang.org/
Janet and Gerbil Scheme are also worth a look:
https://janet-lang.org/
https://cons.io/
-
how did you finally reach Lisp enlightenment?
Point here is that, for instance Janet language does not have cons / pair type but tuple (and so is lispoid, not lisp), but clearly this is sufficient for macros & hence seamless language construction: all you need is to be a lispoid although being a lisp gives another useful feature.
What are some alternatives?
LoopVectorization.jl - Macro(s) for vectorizing loops.
Fennel - Lua Lisp Language
cl4py - Common Lisp for Python
get-started-with-clojure - Learn Clojure and Interactive Programming – Zero install
lang
babashka - Native, fast starting Clojure interpreter for scripting
awesome-compilers - :sunglasses: Curated list of awesome resources on Compilers, Interpreters and Runtimes
scheme-for-max - Max/MSP external for scripting and live coding Max with s7 Scheme Lisp
hissp - It's Python with a Lissp.
ferret - Ferret is a free software lisp implementation for real time embedded control systems.
aws-api - AWS, data driven
kaboom.js - 💥 JavaScript game library