ring-clojure/ring

Clojure HTTP server abstraction

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 21 minutes ago
Type:Library / SDKCategory(s):Backend FrameworksWeb Development
Added to GitGenius on September 17th, 2026
Created on April 29th, 2012
Open Issues & Pull Requests: 41 (+0)
GitHub issues: Enabled
Number of forks: 528
Total Stargazers: 3,883 (+0)
Total Subscribers: 105 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.6 hours
Mean response time: 6.9 days
90th percentile: 7.5 days
Tracked items: 31

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 934 days
Stale 30+ days: 10
Stale 90+ days: 9

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (2)
  • spec (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Ring is a Clojure web applications library that provides an HTTP server abstraction.

Ring solves the problem of coupling web applications tightly to specific HTTP servers and frameworks by defining a simple, unified API for HTTP requests and responses. Inspired by Python's WSGI and Ruby's Rack, it abstracts HTTP details into a modular interface where handlers are functions that take a request map and return a response map. This design allows components to be reused across different applications, servers, and frameworks without modification.

The tool suits Clojure projects that need flexibility in choosing web servers or that want to build reusable middleware and handler components. Ring is distributed as several focused libraries: ring-core provides the core functions and middleware; ring-devel offers development and debugging utilities; ring-jetty-adapter supplies an embedded Jetty server; and ring-servlet and ring-jakarta-servlet enable integration with legacy Java Servlets and modern Jakarta Servlets respectively. The project also provides minimal protocol-only packages for building custom Ring responses and WebSocket support without pulling in unnecessary dependencies.

The project maintains active test coverage through continuous integration workflows. Development follows a structured contribution process documented in a dedicated contributing guide. The codebase acknowledges its intellectual debt to the Ruby and Python communities while building on contributions accumulated over many years.