mulog
integrant
mulog | integrant | |
---|---|---|
4 | 14 | |
471 | 1,194 | |
- | - | |
4.6 | 6.3 | |
about 1 month ago | about 16 hours ago | |
Clojure | Clojure | |
Apache License 2.0 | 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.
mulog
-
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]
- Logging verbosely into a ring buffer?
-
Debugging in Clojure
Assuming the crash doesn't cause the process to completely exit, you could indeed use `scope-capture` for this. This works well for local dev. In theory, you could use `sc.api/spy` in production code, and then attach a remote repl to diagnose any crashes. I wouldn't recommend this though, I think it would be best to use a good logging library like Mulog: https://github.com/BrunoBonacci/mulog
integrant
-
I Hate NestJS
Have a look at Integrant from Clojure: https://github.com/weavejester/integrant
-
A History of Clojure (2020) [pdf]
* Lifecycle management: Mount, Integrant or Component (https://github.com/tolitius/mount https://github.com/weavejester/integrant and https://github.com/stuartsierra/component)
-
Any resources for "current best practices and learnings?"
Allesandra Sierra’s Component has lots of competitors now: first mount which has since fallen out of favor for integrant. There’s newer ones too, like clip and donut-power.
- Clojure needs a Rails, but not for the reason you think
-
How can I learn functional programming?
This was the missing piece for me at least. As mentioned in another reply the Imperative shell, functional core helped me a lot with that. I discovered it through Clean Architecture and by using some micro-frameworks in Clojure that really emphasised the use of the pattern.
-
Reloaded workflow with nbb & expressjs
After reviewing the options, I settled on weavejester/integrant because it's small - only one dependency and two source files in total.
-
[ANN] Reveal Pro 1.3.308 — sticker windows for system libraries (component, integrant, mount)
Today I released a new version of Reveal Pro — dev.vlaaad/reveal-pro {:mvn/version "1.3.308"} — that adds sticker integration for system libraries such as mount, component and integrant!
- Little confusion trying to understand Integrant's source code
-
Forcing engineers to release by some arbitrary date results in shipping unfinished code - instead, ship when the code is ready and actually valuable
Component is nice but I found the records and protocols annoying to work with. Have you checked out Integrant? That ones been my preferred component-style library.
-
Tour of our 250k line Clojure codebase
I don't really like 'Component'. I seems very clunky and we had a lot of issues with it and a lot incidental complexity in our codebase (now converted to Java). It was the first real system that did these sort of things but if I start a project now, I much rather use Integrant or Clip.
https://github.com/weavejester/integrant
https://github.com/juxt/clip
I haven't used Clip a lot yet but my next project is defiantly going to be with Clip.
What are some alternatives?
timbre - Pure Clojure/Script logging library
component - Managed lifecycle of stateful objects in Clojure
re-frame-10x - A debugging dashboard for re-frame. X-ray vision as tooling.
mount - managing Clojure and ClojureScript app state since (reset)
debug-repl - A Clojure debug repl as nrepl middleware
re-frame - A ClojureScript framework for building user interfaces, leveraging React
clj-otel - An idiomatic Clojure API for adding telemetry to your libraries and applications using OpenTelemetry.
cider - The Clojure Interactive Development Environment that Rocks for Emacs
wonderland-clojure-katas - Clojure Katas inspired by Alice in Wonderland
spyscope - Trace-oriented debugging tools for Clojure
learn-you-a-haskell - “Learn You a Haskell for Great Good!” by Miran Lipovača