Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

ring-clojure/ring

Clojure HTTP server abstraction

ring-clojure/ring.json
{
"createdAt": "2012-04-29T11:15:06Z",
"defaultBranch": "master",
"description": "Clojure HTTP server abstraction",
"fullName": "ring-clojure/ring",
"homepage": "",
"language": "Clojure",
"name": "ring",
"pushedAt": "2025-09-24T10:51:32Z",
"stargazersCount": 3848,
"topics": [
"clojure",
"http",
"ring",
"web"
],
"updatedAt": "2025-11-22T20:00:29Z",
"url": "https://github.com/ring-clojure/ring"
}

Ring is a Clojure web applications library inspired by Python’s WSGI and Ruby’s Rack. By abstracting the details of HTTP into a simple, unified API, Ring allows web applications to be constructed of modular components that can be shared among a variety of applications, web servers, and web frameworks.

The [SPEC.md][1] file at the root of this distribution provides a complete description of the Ring interface. The [Wiki][2] contains more in-depth documentation on how to use Ring.

[1] !: https://github.com/ring-clojure/ring/blob/master/SPEC.md [2] !: https://github.com/ring-clojure/ring/wiki

  • ring/ring - meta-package containing all relevant dependencies
  • ring/ring-core - core functions and middleware for Ring handlers, requests and responses
  • org.ring-clojure/ring-core-protocols - contains only the protocols necessary for building Ring responses
  • org.ring-clojure/ring-websocket-protocols - contains only the protocols necessary for WebSockets
  • ring/ring-devel - functions for developing and debugging Ring applications
  • ring/ring-servlet - construct legacy Java Servlets (≤ 4.0) from Ring handlers
  • org.ring-clojure/ring-jakarta-servlet construct [Jakarta Servlets][3] (≥ 5.0) from Ring handlers
  • ring/ring-jetty-adapter - a Ring adapter that uses an embedded [Jetty][4] web server

[3] !: https://projects.eclipse.org/projects/ee4j.servlet [4] !: https://eclipse.dev/jetty/

To include one of the above libraries, for instance ring-core, add the following dependency to your deps.edn file:

ring/ring-core {:mvn/version "1.15.3"}

Or to your Leiningen project file:

[ring/ring-core "1.15.3"]

Please read [CONTRIBUTING.md][5] before submitting a pull request.

[5] !: https://github.com/ring-clojure/ring/blob/master/CONTRIBUTING.md

This project borrows heavily from Ruby’s Rack and Python’s WSGI; thanks to those communities for their work. Thanks also go to the many individuals who have contributed to Ring’s code and documentation over the years.

Copyright © 2009-2025 Mark McGranaghan, James Reeves & contributors.

Released under the MIT license.