janet-sh
janetdocs
Our great sponsors
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.
janet-sh
- Writing Small CLI Programs in Common Lisp (2021)
-
Getting started with lisp
Right now, the one that is most attractive is Janet, with its wonderful shell programming integration and built-in http request. Those are both things I'm working a lot with.
-
Janet – a Lisp-like functional, imperative programming language
I use Janet most often as a glue for shell utilities using the sh package (https://github.com/andrewchambers/janet-sh). It's a great tool for building small containerized jobs. I think it has a ton of potential as the ecosystem grows and matures.
Some rough spots:
- No canonical http client. There are a few attempts at wrapping libcurl but nothing complete and well documented yet. However, the creator of Joy framework for Janet does have an http client library.
- The main http server circlet is MIT licensed, but it is built on top of Mongoose, which is GPL/paid commercial. Something to be aware of if you want to distribute binaries made with this library.
- I have never been successful getting any of the UI or drawing libraries to work.
- Naming of packages is a bit confusing even if you have watched the Good Place and are aware of all of the inside jokes.
-
Writing Small CLI Programs in Common Lisp
The arguments I have seen are based on Janet using arrays/tuples rather than cons cells. Here is the author addressing this on reddit a while back. https://old.reddit.com/r/programming/comments/aqwedz/janet_i...
The debate continues in the thread. Either way, I think Janet is very useful for situations where you want something lisp like and also want/need small executables. I've experimented with it quite a bit and have found it really useful for putting together cli apps. The sh package is really useful for gluing together other shell programs. https://github.com/andrewchambers/janet-sh
janetdocs
-
Joy: A maximalist web framework for Lisp aficionados
Most of what you're asking for is described in the docs, with examples. If you're looking for an example project using Joy, I think janetdocs[0] may be a good example. Some Janet experience may be good before diving into that repo, because it imports Joy with `:prefix ""`.
Also keep in mind that 99% of this seems[1] to have been made by 1 guy (Sean Walker), I think in his free time.
[0]: https://github.com/swlkr/janetdocs
- Janet – a Lisp-like functional, imperative programming language
What are some alternatives?
roswell - intended to be a launcher for a major lisp environment that just works.
joy - A full stack web framework written in janet
termp - Trivial utility: are we in a terminal window or in a dumb one? (like Emacs' Slime)
janet-pobox - Clojure like atoms/spinlocking in Janet
freja - Self-modifiable editor for coding graphical things
osprey - A framework for making web applications quickly
Mongoose - MongoDB object modeling designed to work in an asynchronous environment.
hofmod-cli - Hofstadter generator for Golang CLIs
janet - A dynamic language and bytecode vm