Pedestal Libraries
Pedestal is composed of multiple libraries, and many of these can be used outside of a Pedestal application.
digraph G { "pedestal.common" -> "org.clj-commons/pretty"; "pedestal.telemetry" -> "pedestal.common"; "pedestal.log" -> "pedestal.common"; "pedestal.telemetry" -> "Open Telemetry"; "pedestal.interceptor" -> "pedestal.common", "pedestal.log", "org.clojure/core.async", "org.clj-commons/pretty; "pedestal.error" -> "pedestal.interceptor", "org.clojure/core.match"; "pedestal.route" -> "pedestal.log", "pedestal.interceptor", "pedestal.common", "org.clojure/core.async", "org.clj-commons/pretty"; "pedestal.service" -> "pedestal.telemetry", "pedestal.intereptor", "pedestal.route", "org.clojure/core.async", "ring/ring.core"; "pedestal.servlet" -> "pedestal.service", "Jakarta Servlet APIs"; "pedestal.jetty" -> "pedestal.servlet", "jetty-service, ..."; "pedestal.http-kit" -> "pedestal.service", "http-kit/http-kit"; }
Library Name | Description |
---|---|
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 |
pedestal.interceptor |
Asynchronous interceptor pipeline |
pedestal.error |
Simple error catching for interceptors |
pedestal.route |
HTTP request routing |
pedestal.service |
Connector-agnostic HTTP service support |
pedestal.servlet |
Servlet-API specific |
pedestal.jetty |
Jetty 12 connector |
pedestal.http-kit |
Http-Kit connector |
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.8.0-SNAPSHOT"]
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.8.0-SNAPSHOT"}
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. |