This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-05-12
Channels
- # announcements (4)
- # babashka (93)
- # beginners (43)
- # calva (56)
- # cherry (4)
- # clerk (58)
- # clj-otel (4)
- # cljs-dev (1)
- # clojure (31)
- # clojure-conj (1)
- # clojure-dev (30)
- # clojure-europe (88)
- # clojure-india (2)
- # clojure-italy (3)
- # clojure-nl (1)
- # clojure-norway (17)
- # clojure-uk (2)
- # clojurescript (5)
- # clr (13)
- # conjure (2)
- # cursive (4)
- # data-science (4)
- # datalevin (1)
- # fulcro (3)
- # gratitude (7)
- # hyperfiddle (27)
- # kaocha (3)
- # lsp (9)
- # malli (6)
- # nbb (1)
- # off-topic (41)
- # pedestal (2)
- # practicalli (1)
- # rdf (3)
- # re-frame (3)
- # reitit (10)
- # releases (1)
- # shadow-cljs (8)
- # testing (3)
- # vim (2)
- # xtdb (7)
https://github.com/darkleaf/di: DI is a dependency injection framework that allows you to define dependencies as cheaply as defining function arguments.
2.3.0
With di/env-parsing
middleware, you can add env parsers. https://www.darkleaf.ru/di/test/darkleaf/di/tutorial/n_env_test.html.
(defn jetty
{::di/stop (memfn stop)}
[{port :env.long/PORT
handler `handler
:or {port 8080}}]
(jetty/run-jetty handler {:join? false
:port port}))
(di/start `jetty (di/env-parsing {:env.long parse-long}))
great to see the Clerk docs! If you have any feedback, please let us know in #C035GRLJEP8
https://github.com/borkdude/deps.clj: a faithful port of the clojure CLI bash script to Clojure
This project now comes with an API for easier embedding in applications. Babashka is one such application, but #cursive will now also adopt it, which drove the creation of a more polished API so you can have more control over what happens during various phases of installation and process creation:
borkdude/deps.clj {:mvn/version "1.11.1.1273-3"}
See the API.md docs here: https://github.com/borkdude/deps.clj/blob/master/API.md
Also see these additional API notes: https://github.com/borkdude/deps.clj#api
Happy deps.clj-ing!
(require '[borkdude.deps :as deps])
user=> (deps/parse-cli-opts ["-M:foo:bar" "-m" "foo.bar"])
{:mode :main, :main-aliases ":foo:bar", :args ("-m" "foo.bar")}
Thanks to @cfleming for working on this with me.

I've published a https://www.youtube.com/watch?v=xIuJ0f1Vqek about the Meyvn REPL. The Meyvn REPL supports Java and Kotlin codebases. Source files are being monitored and compiled automatically, so you can create a class in Java, import it in a Kotlin object, which you can then manipulate at the REPL in Clojure. It achieves this by doing static analysis not on source files but on compiled classes. By keeping a dependency graph, it knows which classes need to be reloaded and in what order. This technology is very useful in the context of teams inheriting legacy codebases, typically Java or Kotlin.