What is Pedestal?

animated front page sample

Pedestal is a set of libraries that we use to build web services and applications. Pedestal runs in the back-end and can handle anything from tiny static web sites, to traditional page oriented applications, to dynamic single page applications utilizing server-sent events and WebSockets.

Pedestal scales up with your needs.

We wrote Pedestal to bring Clojure’s key attributes, Focus, Empowerment, and Simplicity, to the domain of Clojure web development.

This documentation is for Pedestal version 0.7.1.

CI pedestal.service

Pedestal requires Clojure 1.10 or later, and works with Servlet API 5.0 and Java 11 and up.

Features

Ready for Production

Pedestal runs where Java runs: Applications can be deployed as standalone Clojure applications, or as WAR files in a servlet container. Pedestal integrates with Open Telemetry to give you visibility into your running services.

Secure By Default

Pedestal automatically uses secure headers, enables cross site request forgery protection, and other best practices.

It works with cross-origin resource sharing to allow secure front end applications.

Easy Ramp Up

A simple Pedestal app fits into a few lines of Clojure; Pedestal includes a deps-new template for getting you started. When you need more power, it’s ready for you.

Testable

Pedestal’s core interceptor model breaks request processing into small pieces that are simple, often free of side effects, and therefore easy to test; then lets you stack those pieces up to form your full application.

Streaming

Pedestal supports creating dynamic applications with server-sent events and WebSockets. Pedestal leverages Clojure’s extraordinary asynchronous capabilities and Java’s efficient NIO operations.

Composable and Extensible

Pedestal is built from components that connect via protocols, giving you the flexibility to swap out any part with something customized to your application.