hofmod-cli
janet-sh
Our great sponsors
hofmod-cli | janet-sh | |
---|---|---|
2 | 4 | |
25 | 77 | |
- | - | |
5.5 | 2.3 | |
8 months ago | 3 months ago | |
Go | Janet | |
BSD 3-clause "New" or "Revised" 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.
hofmod-cli
-
Bashly – Create beautiful bash scripts from simple YAML configuration
Shameless plug, I wrote https://github.com/hofstadter-io/hof as a generalized tool for what this does, i.e. generate boilerplate from a DSL.
https://github.com/hofstadter-io/hofmod-cli is the same idea for generating Go CLI boilerplate.
hof uses CUE instead of Yaml, can output to any and multiple languages, and uses diff3 so you can work in both the output and the design at the same time.
-
Writing Small CLI Programs in Common Lisp
I try to avoid pip and dependencies for these python scripts. This goal has it's limits.
Click is nice if you want a command with multiple sub commands. I use Go + Cobra at that point via https://github.com/hofstadter-io/hofmod-cli
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
What are some alternatives?
bashly - Bash command line framework and CLI generator
roswell - intended to be a launcher for a major lisp environment that just works.
harmony - Easily test downstream projects before releasing new code
janetdocs - A community documentation site for the janet programming language
cligen - Nim library to infer/generate command-line-interfaces / option / argument parsing; Docs at
termp - Trivial utility: are we in a terminal window or in a dumb one? (like Emacs' Slime)
ngs - Next Generation Shell (NGS)
janet - A dynamic language and bytecode vm
freja - Self-modifiable editor for coding graphical things
alf - Bash Alias Generator and Manager
janet-pobox - Clojure like atoms/spinlocking in Janet