Pedestal Libraries
Pedestal is composed of multiple libraries, and many of these can be used outside of a Pedestal application.
| Library Name | Description | Dependencies | 
|---|---|---|
pedestal.common  | 
Common functionality and internal utilities.  | 
|
pedestal.telemetry  | 
Wrapper around Open Telemetry for generating application metrics and tracing.  | 
|
pedestal.log  | 
Wrapper around Simple Logging Facade for Java [1]  | 
pedestal.common, Dropwizard Metrics, Open Tracing  | 
pedestal.interceptor  | 
Asynchronous interceptor pipeline  | 
pedestal.log, pedestal.common  | 
pedestal.error  | 
Simple error catching for interceptors  | 
pedestal.interceptor, org.clojure/core.match  | 
pedestal.route  | 
HTTP request routing  | 
pedestal.log, pedestal.interceptor, pedestal.common, core.async  | 
pedestal.service  | 
Container-agnostic HTTP service support  | 
pedestal.log, pedestal.telemetry, pedestal.interceptor, pedestal.route, core.async, Java Servlet API, Java WebSocket API, ring/ring-core, several others  | 
pedestal.jetty  | 
Jetty 11 adapter  | 
pedestal.log, pedestal.service, Jetty 11 (server, servlet, alpn-servicer, http2-service, etc.)  | 
pedestal.service-tools  | 
Tools used for local development  | 
pedestal.service, org.clojure/data.xml, ns-tracker  | 
Artifact Coordinates
Pedestal libraries are uploaded to the Clojars repository; files in such a repository are called artifacts.
All pedestal libraries are in the io.pedestal group.
For Leiningen, add this vector to
the :dependencies list inside your project.clj:
[io.pedestal/pedestal.jetty "0.7.2"]
You will adjust the library name as necessary.
For Clojure Deps, add this key and value to the :deps map inside your deps.edn:
 io.pedestal/pedestal.jetty {:mvn/version "0.7.2"}
Git Artifact Coordinates
Pedestal is built using Clojure Deps; this means that it is possible to get access to bleeding-edge versions of the libraries directly from the GitHub repository.
  io.pedestal/pedestal.jetty {:git/url "https://github.com/pedestal/pedestal.git"
                              :git/sha "a0b6a0f7e57710ba6b9f0aa3a62dd1f68e278f43"
                              :deps/root "jetty"}
All Pedestal libraries are in the same repository, :deps/root is used to select
the sub-directory containing the library’s code (this matches the library name,
without the pedestal. prefix).
| 
 :git/url’s are not transitive; when the library you select has dependencies on other Pedestal libraries, those will be accessed as :mvn/version dependencies. You may need to provide additional dependencies to bring in multiple Pedestal libraries. For example, if you are verifying a bug fix that was split between pedestal.route and pedestal.service, you should introduce dependencies on both libraries; otherwise you may only get half of the bug fix.  |