jolt/docs/libraries.md
Yogthos eb768b13c1 docs: delist next.jdbc (JVM/JDBC-driver dependent)
next.jdbc's own source needs clojure.datafy + clojure.java.data and its tests
need JVM JDBC drivers, so it doesn't run on jolt. Keep clojure.jdbc (via
jolt-lang/db's jdbc.core over FFI SQLite) as the supported JDBC surface; point
migratus at jolt-lang/db.
2026-07-01 17:49:35 -04:00

5.2 KiB

Clojure libraries known to work with Jolt

Libraries confirmed to load and pass their conformance checks on Jolt. A library listed here works. See the examples, e.g. the ring-app example.

  • aero — EDN configuration with tag literals (#ref/#env/#or/#profile/#long/…)
  • config — environment configuration
  • Selmer — Django-style templates
  • medley — collection utilities
  • cuerdas — string manipulation
  • ring-core — via :deps/root "ring-core", on the ring-app example
  • ring-codec — URL/form encoding
  • ring-defaults — the standard middleware stack (params, static resources + content-type, session, security headers); its session/CSRF crypto comes from jolt-lang/jolt-crypto (OpenSSL)
  • reitit-core — data-driven routing; the reitit.Trie Java class is mirrored by jolt-lang/router.
  • integrant — data-driven system configuration (#ig/ref), with its dependency and meta-merge deps
  • honeysql — SQL formatter and helpers
  • clojure.jdbc — via jolt-lang/db's jdbc.core, over the built-in SQLite access (libsqlite3 via Chez's FFI)
  • tools.logging — runs verbatim over a native clojure.tools.logging.impl stderr backend
  • migratus — database migrations over jolt-lang/db
  • malli — data schema validation, on the malli-app example.
  • markdown-clj — Markdown → HTML, on the markdown-app example
  • hiccup — HTML from Clojure data, on the hiccup-app example
  • clojure.data.json — JSON reading and writing
  • clojure.spec.alpha — data specs
  • core.match — pattern matching.
  • core.cache — caching (Basic/FIFO/LRU/ LU/TTL/Soft + the wrapped atom API), over data.priority-map.
  • core.memoize — function memoization over core.cache.
  • core.async — CSP channels and go blocks (<!/>!/alts!, pipeline, mult/mix/pub/sub) on real OS threads.
  • core.logic — relational logic programming (unification, run/fresh/conde, finite domains).
  • math.combinatorics — permutations, combinations, subsets, selections, cartesian products, partitions.
  • core.contracts — programming by contract (contract/with-constraints/provide), over core.unify.
  • data.zip — zipper navigation, including clojure.data.zip.xml; XML parsing via jolt-lang/xml (which now ships clojure.xml/parse).
  • data.csv — reading and writing CSV.
  • data.codec — base64 encode/decode over byte arrays.
  • data.priority-map — priority maps (incl. keyfn / custom comparator), with subseq/rsubseq.
  • tools.macro — local macros (macrolet/symbol-macrolet), mexpand/mexpand-all.
  • algo.monads — monad macros and monads (maybe/seq/state/writer/reader/…), over tools.macro.
  • test.check — property-based testing (generators, quick-check, shrinking).
  • tools.reader — a Clojure reader in Clojure (edn + full reader, indexing/pushback reader types).
  • rewrite-clj — parse/rewrite Clojure source while preserving whitespace and comments (nodes + zipper), over tools.reader.
  • tick — date/time over Jolt's java.time; #time/… literals via time-literals.
  • transit-jolt — Transit (JSON) read/write