In this post I'll give updates about open source I worked on during November 2023.
To see previous OSS updates, go here.
I'd like to thank all the sponsors and contributors that make this work possible! Without you, the below projects would not be as mature or wouldn't exist or be maintained at all.
Open the details section for more info.
If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in the following ways. Thank you!
If you're used to sponsoring through some other means which isn't listed above, please get in touch.
On to the projects that I've been working on!
It is Advent of Code time of year again. You can solve puzzles in an online squint or cherry playground here.
Change the /squint/
part of the url to /cherry/
to switch ClojureScript dialect versions.
You can read more about the playground here.
Here are updates about the projects/libraries I've worked on last month.
blog I've written two blog posts this month:
squint: CLJS syntax to JS compiler
Lots of stuff happened in November with squint! You could say that I've grown a little addicted to improving this project currently, driven by how users use it and also while developing the playground, a lot of potential improvements emerged..
scittle-hoplon: a custom scittle distribution with Hoplon. I helped developing the SCI configuration for Hoplon.
gespensterfelder: a demo that Jack Rusher wrote using Three.js ported to squint.
neil: A CLI to add common aliases and features to deps.edn-based projects Version 0.2.63 released which adds mvn search and some bugfixes
CLI: Turn Clojure functions into CLIs!
:exec-args
and default
aoc-proxy: a Cloudflare worker that can be used to fetch Advent of Code puzzle input from the browser (see Advent of Code playground)
squint-macros: a couple of macros that stand-in for applied-science/js-interop and promesa to make CLJS projects compatible with squint and/or cherry.
clojure-mode: Clojure/Script mode for CodeMirror 6.
sci.configs: A collection of ready to be used SCI configs.
re-frame.alpha
. See playground.babashka: native, fast starting Clojure interpreter for scripting. A new release: 1.3.186!
SCI: Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
Released version 0.8.41
(def foo/foo 1)
when inside namespace foo
sci.async/eval-form
and sci.async/eval-form+
sci.async/eval-string
, respect top-level do
forms:static-methods
option to override how static methods get evaluated.destructure
(.foo bar)
formderef
, swap!
, reset!
for host valuestime
macro to core namespacecatch
to be used as var namecherry: Experimental ClojureScript to ES6 module compiler
clj-kondo: static analyzer and linter for Clojure code that sparks joy.
:condition-always-true
and :underscore-in-namespace
linters + couple of bugfixes. Release expected in December.These are (some of the) other projects I'm involved with but little to no activity happened in the past month.
lein-clj-kondo: a leiningen plugin for clj-kondo
http-kit: Simple, high-performance event-driven HTTP client+server for Clojure.
http-client: babashka's http-client
nbb: Scripting in Clojure on Node.js using SCI
fs - File system utility library for Clojure
deps.clj: A faithful port of the clojure CLI bash script to Clojure
babashka.nrepl: The nREPL server from babashka as a library, so it can be used from other SCI-based CLIs
rewrite-edn: Utility lib on top of rewrite-clj with common operations to update EDN while preserving whitespace and comments
tools-deps-native and tools.bbuild: use tools.deps directly from babashka
jet: CLI to transform between JSON, EDN, YAML and Transit using Clojure
quickdoc: Quick and minimal API doc generation for Clojure
pod-babashka-go-sqlite3: A babashka pod for interacting with sqlite3
pod-babashka-fswatcher: babashka filewatcher pod
edamame: Configurable EDN/Clojure parser with location metadata
lein2deps: leiningen to deps.edn converter
scittle: Execute Clojure(Script) directly from browser script tags via SCI
sql pods: babashka pods for SQL databases
cljs-showcase: Showcase CLJS libs using SCI
process: Clojure library for shelling out / spawning sub-processes
babashka.book: Babashka manual
rewrite-clj: Rewrite Clojure code and edn
pod-babashka-buddy: A pod around buddy core (Cryptographic Api for Clojure).
gh-release-artifact: Upload artifacts to Github releases idempotently
carve - Remove unused Clojure vars
quickblog: Light-weight static blog engine for Clojure and babashka
4ever-clojure - Pure CLJS version of 4clojure, meant to run forever!
pod-babashka-lanterna: Interact with clojure-lanterna from babashka
clj2el: transpile Clojure to elisp
deflet: make let-expressions REPL-friendly!
babashka.json: babashka JSON library/adapter
deps.add-lib: Clojure 1.12's add-lib feature for leiningen and/or other environments without a specific version of the clojure CLI
Published: 2023-12-01
Tagged: clojure oss updates