timbre | rlwrap | |
---|---|---|
5 | 14 | |
1,434 | 2,345 | |
0.2% | - | |
7.6 | 2.2 | |
12 days ago | about 2 months ago | |
Clojure | C | |
Eclipse Public License 1.0 | GNU General Public License v3.0 only |
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.
timbre
-
Tracing: Structured Logging, but better in every way
There are logging libraries that include syntactically scoped timers, such as mulog (https://github.com/BrunoBonacci/mulog). While a great library, we preferred timbre (https://github.com/taoensso/timbre) and rolled our own logging timer macro that interoperates with it. More convenient to have such niceties in a Lisp of course.
-
A History of Clojure (2020) [pdf]
Mentioning μ/log and no mention of timbre (https://github.com/taoensso/timbre), that is an odd omission. Malli is a great mention, but there ought to be a mention of clojure.spec (https://github.com/clojure/spec.alpha) which has much more mindshare.
-
Rich Hickey – open-source is Not About You
If you're not familiar with lisps in general, it might be hard to grok the differences between lisp-macros (as used in Clojure) and "normal" macros you see in other languages.
But, if you are familiar already, and just wanna see examples of neat macros that makes the API nicer than what a function could provide, here are a few:
- https://github.com/clojure/core.async/blob/master/examples/w...
- https://github.com/weavejester/compojure
- https://github.com/ptaoussanis/timbre
- https://github.com/krisajenkins/yesql
-
Build and run Clojure projects. CLI, tools.deps and deps.edn guide
When clj is invoked, two libraries will be available in our code: timbre logging library which artifacts taken from Maven, and test-runner, taken from GitHub.
-
Tour of our 250k line Clojure codebase
No, I don't think they were hyped at any point.
They are used in certain libraries like https://github.com/ptaoussanis/timbre but for things that are simply not possible without macros, for example (timbre/spy (+ 1 1)) will actually print both the expression and the result:
DEBUG [ss.experimental.scratch:1] - (+ 1 1) => 2
Perhaps if the macros are "simple" they can be unpacked relatively easily. I do understand how mentally challenging that can be for somebody who's just starting with Clojure. I've been using Clojure for ~8 years and only just recently became more comfortable with macros after I made a conscious effort in that direction. I'm still far from an "expert" in them.
rlwrap
-
Contour: Modern and Fast Terminal Emulator
Possibly more universal, but there are also tools like rlwrap [1] that adds readline support to programs that don't have it. From the docs apparently the readline library ships a similar tool ootb nowadays but I haven't tried that and just noticed now when I wanted to share the rlwrap link.
[1] https://github.com/hanslub42/rlwrap
- Rlwrap: A Readline Wrapper
-
A good REPL solution
Otherwise I use rlwrap, which is a general purpose readline wrapper: https://github.com/hanslub42/rlwrap It's pretty basic stuff, but makes basic line editing less painful, & adds history support.
-
Keyboard Shortcuts every Command Line Hacker should know about GNU Readline
Friends if you dont know: you can add readline support to LOTS of things, especially custom scripts and tools with a prompt by just calling the program with rlwrap.
> rlwrap is a 'readline wrapper', a small utility that uses the GNU Readline library to allow the editing of keyboard input for any command.
https://github.com/hanslub42/rlwrap
-
Linux/Ubuntu Commands To Speed Up Your Daily Work
rlwrap for any interactive command will give it a history. You can even build a file to have tab completion. https://github.com/hanslub42/rlwrap
-
Which personal aliases do you use, that may be useful to others?
rlwrap is a 'readline wrapper', a small utility that uses the GNU Readline library to allow the editing of keyboard input for any command, something that tclsh, wish and sbcl don't provide.
-
14 great tips to make amazing CLI applications
This can be as easy as wrapping a simple stdin/stdout loop with rlwrap, all the way to using full featured TUI libraries like bubbletea (golang), textual (python) or imtui (c++).
-
Unable to use cltr r (readline reverse search) in R with macos
You could always use rlwrap (installable via homebrew). You would launch R with rlwrap R in that case. However, I suspect there is something else missing, because it appears that the R repl usually includes readline support. Thus my questions about installation method and OS.
-
Build and run Clojure projects. CLI, tools.deps and deps.edn guide
As you can see ,clj, behind the scenes, wraps a call to $bin_dir/clojure with the rlwrap tool. rlwrap provides a better command-line editing experience.
-
Racket with cross-platform read-line
If read-line functionality is missing from languages that provide repls or command line interpreters, rlwrap has always served me well on linux. Many distros provide their own package too.
What are some alternatives?
mulog - μ/log is a micro-logging library that logs events and data, not words!
socatplayer
integrant - Micro-framework for data-driven architecture
tunnel-wireguard-udp2tcp - Tunnel WireGuard UDP traffic over TCP using socat
clj-new - Generate new projects based on clj, Boot, or Leiningen Templates!
wsl-ssh-pageant - A Pageant -> TCP bridge for use with WSL, allowing for Pageant to be used as an ssh-ageant within the WSL environment.
clip - Light structure and support for dependency injection
test-runner - A test runner for clojure.test
winssh-pageant - Bridge to Windows OpenSSH agent from Pageant. This means the openssh agent has the keys and this proxies pageant requests to it.
mount - managing Clojure and ClojureScript app state since (reset)