Application service and state management. Holds long-lived references (database connections, env, etc.) that should persist across tools.namespace reloads. Services are maps of {:start sym :stop sym} started/stopped via start!/stop!.
Application service and state management. Holds long-lived references (database connections, env, etc.) that should persist across `tools.namespace` reloads. Services are maps of `{:start sym :stop sym}` started/stopped via `start!`/`stop!`.
Cross-platform benchmarking macros: elapsed-time for one-shot timing, bench for repeated runs returning {:min :max :total :avg} in milliseconds.
Cross-platform benchmarking macros: `elapsed-time` for one-shot timing, `bench` for repeated runs returning `{:min :max :total :avg}` in milliseconds.
Common core code. This file should have minimal dependencies. Clients should be able to safely :refer :all from this namespace.
Common core code. This file should have minimal dependencies. Clients should be able to safely :refer :all from this namespace.
Defines a Cursor that wraps an atom (or atom-like structure) and provides a way to focus on a specific path within its nested data. It implements various Clojure interfaces to make it behave like an atom itself, with dereferencing, swapping, resetting, and watching capabilities.
Defines a Cursor that wraps an atom (or atom-like structure) and provides a way to focus on a specific path within its nested data. It implements various Clojure interfaces to make it behave like an atom itself, with dereferencing, swapping, resetting, and watching capabilities.
Resolves configuration values from (in order): runtime overrides via override!, Java system properties, OS environment variables, and an optional .env Properties file at the project root.
Resolves configuration values from (in order): runtime overrides via `override!`, Java system properties, OS environment variables, and an optional `.env` Properties file at the project root.
Registry mapping :kind keywords to their conformed schemas. Provides for-kind lookup and throwing variants of schema's present!/coerce!/conform! that auto-resolve the schema from (:kind entity).
Registry mapping `:kind` keywords to their conformed schemas. Provides `for-kind` lookup and throwing variants of schema's `present!`/`coerce!`/`conform!` that auto-resolve the schema from `(:kind entity)`.
Cross-platform logging facade over Timbre. Re-exports level macros (info, warn, etc.), level controls (info!, off!, etc.), and a capture-logs helper for asserting log output in tests.
Cross-platform logging facade over Timbre. Re-exports level macros (`info`, `warn`, etc.), level controls (`info!`, `off!`, etc.), and a `capture-logs` helper for asserting log output in tests.
Workflow-aware namespace reloading. Wraps clojure.tools.namespace so that
registered services (see c3kit.apron.app) are stopped before reload and
restarted after, keeping app state coherent during interactive development.
Workflow-aware namespace reloading. Wraps `clojure.tools.namespace` so that registered services (see `c3kit.apron.app`) are stopped before reload and restarted after, keeping app state coherent during interactive development.
Defines data structure, coerces, validates.
Defines data structure, coerces, validates.
Shared infrastructure for doc-format renderers (OpenAPI, markdown, ...). Describes the expected shape of a route/doc spec and provides helpers that are format-agnostic.
Shared infrastructure for doc-format renderers (OpenAPI, markdown, ...). Describes the expected shape of a route/doc spec and provides helpers that are format-agnostic.
Coordinate-based traversal of schemas and data. The grammar matches what schema/message-seq produces:
For schemas, two reserved segment names provide access to dynamic templates:
If the spec has no matching template (e.g. a :map with no :value-spec), :value and :key fall back to ordinary field lookup in :schema.
schema-at walks a schema tree (template semantics). data-at walks concrete data (supports an optional :lenient? option for keyword/string key equivalence).
Coordinate-based traversal of schemas and data. The grammar matches what schema/message-seq produces: - dot-separated keyword keys: a.b.c - [N] for seq indices: points[0] - ["..."] for string keys: crew["bill"] - [:kw] for explicit keywords: a[:joe] For schemas, two reserved segment names provide access to dynamic templates: - :value — the :value-spec of a :map, or the :spec of a :seq - :key — the :key-spec of a :map If the spec has no matching template (e.g. a :map with no :value-spec), :value and :key fall back to ordinary field lookup in :schema. schema-at walks a schema tree (template semantics). data-at walks concrete data (supports an optional :lenient? option for keyword/string key equivalence).
Standard catalog of validators and coercers. Each ref is its own var for à-la-carte use; install! drains the catalog into c3kit.apron.schema's ref-registry.
Standard catalog of validators and coercers. Each ref is its own var for à-la-carte use; install! drains the catalog into c3kit.apron.schema's *ref-registry*.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away.
Cross-platform time/date manipulation. JVM uses java.util.Date; CLJS uses cljs-time. The atomic unit throughout is the millisecond.
Cross-platform time/date manipulation. JVM uses `java.util.Date`; CLJS uses `cljs-time`. The atomic unit throughout is the millisecond.
JVM-only utilities: filesystem traversal, namespace/path conversion, MD5 hashing, EDN resource reading, and dynamic var resolution.
JVM-only utilities: filesystem traversal, namespace/path conversion, MD5 hashing, EDN resource reading, and dynamic var resolution.
Cross-platform conversions: EDN, transit, JSON (JVM), hex, CSV, plus shared collection helpers that work in both Clojure and ClojureScript.
Cross-platform conversions: EDN, transit, JSON (JVM), hex, CSV, plus shared collection helpers that work in both Clojure and ClojureScript.
Ring middleware (wrap-verbose) that pretty-prints request and response maps to the log for development debugging.
Ring middleware (`wrap-verbose`) that pretty-prints request and response maps to the log for development debugging.
Runtime access to the apron version string.
Runtime access to the apron version string.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |