In this post I'll give updates about open source I worked on during July and August 2022.
But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists Together, Roam Research, Nextjournal, Adgoji, Cognitect, Kepler16, .
If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work via the following organizations:
This is a new project: a CLJS syntax to JS compiler for the niche use case where you want to write JS, but do it using CLJS syntax and tooling instead. ClavaScript comes with a standard library that resembles CLJS but is built on bare JS ingredients. As such, Clava comes with the usual JS caveats, but we can still have our parens and enjoy a slim bundle size!
Cherry is similar to ClavaScript, but it does emit CLJS-compatible code (with the persistent data structures, etc). The compiler code is almost identical to Clava's, but with a few tweaks here and there. E.g. {:a 1}
in Clava means: a JS object with a "a"
key and 1
value, but in cherry, {:a 1}
means the same as in CLJS. The goal of both Clava and Cherry are to reduce friction between CLJS and JS tooling. Both projects should be considered experimental for now. Challenges in both Clava and Cherry is the REPL, since both projects compile to ES6 modules and ES6 module imports are immutable.
On ClojureDays 2022 I will give a talk titled "ClojureScript reimagined" which will shed more light on both projects.
Execute Clojure(Script) directly from browser script tags via SCI. See it in action.
Scittle received two new plugins: one for promesa.core
and one for cljs.pprint
. Also error messages were improved.
Babashka toolbox is a port of Clojure toolbox and gives an overview of bb-compatible libraries and projects.
Turn Clojure functions into CLIs!
Several new options have been added: :validate
, :require
, :restrict
. Also error handling was made more flexible.
Babashka CLI proper is now part of babashka. Also see my blog posts about it:
Native, fast starting Clojure interpreter for scripting.
-x
: a way to execute functions from the command line using babashka CLIScripting in Clojure on Node.js using SCI
esbuild
to minify and tree-shake them.nbb.edn
: you can now declare dependencies within this file, e.g. from Clojars and nbb will add them automatically to the classpath, so you can require
them.Static analyzer and linter for Clojure code that sparks joy
Run Clojure scripts on Deno via SCI. I'm not exactly sure how useful this is to the wider Clojure community, but I got curious about deno and decided to give this a go.
Light-weight static blog engine for Clojure and babashka
A lot has been happening in this project, with the help of Josh Glover. Check out the changelog. The blog you're currently reading is made with quickblog.
Configurable Clojure interpreter suitable for scripting and Clojure DSLs.
This is the workhorse that powers babashka, nbb, bebo, and many other projects.
Several bugfixes and enhancements were made in the last two months.
A CLI to add common aliases and features to deps.edn-based projects.
Neil now has a new
subcommand which defers to deps-new. Also neil test
was added to run tests using the Cognitect-labs test runner. Much thanks to rads who contributed a lot.
Clojure library for shelling out / spawning subprocesses
Minor updates and fixes.
File system utility library for Clojure.
Minor updates and fixes.
A babashka pod around buddy core (Cryptographic Api for Clojure).
The latest release adds wrappers for buddy.sign.jwt
and provides an aarch64
binary.
See changelogs.
The dynaload logic from clojure.spec.alpha as a library
This library was made compatible with nbb.
Upgrades and minor fixes.
A collection of ready to be used SCI configs
Moved cljs.pprint
config from nbb into this project.
Published: 2022-09-01
Tagged: clojure oss updates