Bring the docs in line with the actual implementation now that Chez is the sole substrate. Deleted the migration/spike/handoff artifacts that only documented the Janet era or the port effort: the port plan, phase-0 and foundational-runtime spike writeups (+ the stray root-level copy), the self-hosting design notes, the architecture-refactor plan, and spike/chez/RESULTS.md. Rewrote the current reference docs against the Chez facts: building-and-deps and tools-deps (no jpm/build step — bin/joltc off the checked-in seed, deps via jolt.deps into ~/.jolt/gitlibs), libraries (SQLite is built-in jdbc.core over libsqlite3, not a Janet driver), the conformance/spec test-flow docs (the Chez corpus runner + certify, no .janet harnesses), and the transient / type-hint / seed-overlay design notes (Chez representations: mutable transients, flat copy-on-write vectors, HAMT maps, the seed/overlay twin). Fixed the README collections line (vectors aren't 32-way tries) and added the ffi/transient gate targets. rfc 0001's numerics open-question is resolved (the Scheme tower). Renamed the built-in HTTP adapter to jolt.http.server only (dropped the ring-janet.adapter alias — a Janet-era name).
3.3 KiB
3.3 KiB
Clojure libraries known to work with Jolt
Libraries confirmed to load and pass their conformance checks on Jolt (see the examples, e.g. the ring-app example).
- config
- Selmer
- medley
- cuerdas
- ring-core — via
:deps/root "ring-core", on the ring-app example's spork/http adapter - ring-codec
- reitit-core — data-driven routing; the
reitit.Trie Java class is mirrored in Clojure by
jolt-lang/router. Load with
JOLT_FEATURESincludingclj. - honeysql — full formatter + helpers (select/insert/update/delete/joins/:inline), loaded unmodified from git
- clojure.jdbc — as jolt-lang/db's
jdbc.core, over the built-in SQLite access (libsqlite3 via Chez's FFI) - next.jdbc — a compatibility layer in
jolt-lang/db (
next.jdbc,next.jdbc.sql,next.jdbc.prepare,next.jdbc.transaction) overjdbc.core, for libraries that target the next.jdbc API - tools.logging — the real
clojure.tools.loggingsource runs verbatim. jolt provides a nativeclojure.tools.logging.implbackend (a stderrLoggerFactory— the library's designed extension point, where slf4j/log4j/jul adapters normally plug in) plus the host shims it needs (agent/send-off,clojure.lang.LockingTransaction, aclojure.pprintsubset,clojure.string/trim-newline). The level macros,logf/logp,spy, andenabled?all work; output goes to stderr. - migratus — database migrations; loads
unmodified and runs filesystem SQL/EDN migrations against SQLite through the
next.jdbc layer above.
migrate/rollbackround-trip end to end. - malli — data schema validation, on the
malli-app example.
m/validateandm/explainwork across the vocabulary (predicates,:int/:string/:keyword,:mapincl. nested + optional,:vector,:tuple,:enum,:maybe,:and/:or,:re, bounded int/string). Load withJOLT_FEATURESincludingclj(malli's.cljckeys class-schemas off the:cljreader-conditional branches). - markdown-clj — Markdown → HTML, on the markdown-app example. Renders headings, emphasis, inline code, links, lists, tables, strikethrough.
- hiccup — HTML from Clojure data, on the
hiccup-app example.
Element tags, attribute maps, nested elements, and
forcomprehensions; itshtmlmacro pre-compiles the markup (a good compiler stress test).