What is Pedestal?

animated front page sample

Pedestal is a set of libraries that we use to build services and applications. It runs in the back end and can serve up whole HTML pages or handle API requests.

There are a lot of tools in that space, so why did we build Pedestal? We had two main reasons:

  • Pedestal is designed for APIs first. Most web app frameworks still focus on the "page model" and server side rendering. Pedestal lets you start simple and add that if you need it.

  • Pedestal makes it easy to create live applications. Applications must respond with immediate feedback even while some back-end communication goes on. Pedestal makes it easy to deliver server-sent events and asynchronous updates.

Features

Ready for Production

Pedestal works with a huge variety of containers and deployment options. Deploy applications or microservices on unikernels, Docker containers, or JAR files. Pedestal supports Tomcat, Jetty, Immutant (with Undertow), Vert.x, nginx, and Netty.

Secure by Default

Pedestal automatically uses secure headers, CSRF-protection, and other best practices. It works with CORS to allow secure front end applications.

Streaming

Pedestal lets you create dynamic applications with server-sent events and websockets. It uses Clojure's async capabilities and Java NIO.

Late Binding

Routers and Interceptors let Pedestal services apply different behavior based on each incoming request, rather than statically wrapping everything up during initialization.

Composable

Pedestal is built from pieces that connect via protocols, giving you the flexibility to swap out any part.