# Clojure libraries known to work with Jolt Libraries confirmed to load and pass their conformance checks on Jolt. A library listed here works; some need `JOLT_FEATURES` including `clj` (noted below). See the [examples](https://github.com/jolt-lang/examples), e.g. the [ring-app example](https://github.com/jolt-lang/examples/tree/main/ring-app). * [aero](https://github.com/juxt/aero) — EDN configuration with tag literals (`#ref`/`#env`/`#or`/`#profile`/`#long`/…) * [config](https://github.com/yogthos/config) — environment configuration * [Selmer](https://github.com/yogthos/Selmer) — Django-style templates * [medley](https://github.com/weavejester/medley) — collection utilities * [cuerdas](https://github.com/funcool/cuerdas) — string manipulation * [ring-core](https://github.com/ring-clojure/ring) — via `:deps/root "ring-core"`, on the ring-app example * [ring-codec](https://github.com/ring-clojure/ring-codec) — URL/form encoding * [ring-defaults](https://github.com/ring-clojure/ring-defaults) — the standard middleware stack (params, static resources + content-type, session, security headers); its session/CSRF crypto comes from [jolt-lang/jolt-crypto](https://github.com/jolt-lang/jolt-crypto) (OpenSSL) * [reitit-core](https://github.com/metosin/reitit) — data-driven routing; the `reitit.Trie` Java class is mirrored by [jolt-lang/router](https://github.com/jolt-lang/router). `JOLT_FEATURES` `clj`. * [integrant](https://github.com/weavejester/integrant) — data-driven system configuration (`#ig/ref`), with its [dependency](https://github.com/weavejester/dependency) and [meta-merge](https://github.com/weavejester/meta-merge) deps * [honeysql](https://github.com/seancorfield/honeysql) — SQL formatter and helpers * [clojure.jdbc](https://github.com/yogthos/clojure.jdbc) — as [jolt-lang/db](https://github.com/jolt-lang/db)'s `jdbc.core`, over the built-in SQLite access (libsqlite3 via Chez's FFI) * [next.jdbc](https://github.com/seancorfield/next-jdbc) — a compatibility layer in [jolt-lang/db](https://github.com/jolt-lang/db) over `jdbc.core` * [tools.logging](https://github.com/clojure/tools.logging) — runs verbatim over a native `clojure.tools.logging.impl` stderr backend * [migratus](https://github.com/yogthos/migratus) — database migrations over the next.jdbc layer * [malli](https://github.com/metosin/malli) — data schema validation, on the malli-app example. `JOLT_FEATURES` `clj`. * [markdown-clj](https://github.com/yogthos/markdown-clj) — Markdown → HTML, on the markdown-app example * [hiccup](https://github.com/weavejester/hiccup) — HTML from Clojure data, on the hiccup-app example * [clojure.data.json](https://github.com/clojure/data.json) — JSON reading and writing * [clojure.spec.alpha](https://github.com/clojure/spec.alpha) — data specs * [core.match](https://github.com/clojure/core.match) — pattern matching. `JOLT_FEATURES` `clj`. * [core.cache](https://github.com/clojure/core.cache) — caching (Basic/FIFO/LRU/ LU/TTL/Soft + the wrapped atom API), over [data.priority-map](https://github.com/clojure/data.priority-map). `JOLT_FEATURES` `clj`. * [tick](https://github.com/juxt/tick) — date/time over Jolt's `java.time`; `#time/…` literals via `time-literals`. `JOLT_FEATURES` `clj`. * [transit-jolt](https://github.com/jolt-lang/transit-jolt) — Transit (JSON) read/write