ring-clojure/ring

Clojure HTTP server abstraction

3,883

stars

1,254

commits

Clojure

primary language

Sep 6, 2026

updated

clojure
http
ring
web

README

Ring Build Status

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 file at the root of this distribution provides a complete description of the Ring interface. The Wiki contains more in-depth documentation on how to use Ring.

Libraries

  • 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 (≥ 5.0) from Ring handlers
  • ring/ring-jetty-adapter - a Ring adapter that uses an embedded Jetty web server

Installation

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.5"}

Or to your Leiningen project file:

[ring/ring-core "1.15.5"]

Documentation

Contributing

Please read CONTRIBUTING.md before submitting a pull request.

Thanks

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.

License

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

Released under the MIT license.

Contributors

(top 30 of 132)

weavejester

916 commits

mmcgrana

124 commits

cldwalker

16 commits

sirmspencer

8 commits

ring-clojure/ring

Clojure HTTP server abstraction

3,883

stars

1,254

commits

Clojure

primary language

Sep 6, 2026

updated

clojure
http
ring
web

README

Ring Build Status

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 file at the root of this distribution provides a complete description of the Ring interface. The Wiki contains more in-depth documentation on how to use Ring.

Libraries

  • 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 (≥ 5.0) from Ring handlers
  • ring/ring-jetty-adapter - a Ring adapter that uses an embedded Jetty web server

Installation

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.5"}

Or to your Leiningen project file:

[ring/ring-core "1.15.5"]

Documentation

Contributing

Please read CONTRIBUTING.md before submitting a pull request.

Thanks

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.

License

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

Released under the MIT license.

Contributors

(top 30 of 132)

weavejester

916 commits

mmcgrana

124 commits

cldwalker

16 commits

sirmspencer

8 commits

Languages

Clojure

98.9%

CSS

1.1%