Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ring-clojure/ring
Clojure HTTP server abstraction
https://github.com/ring-clojure/ring
clojure http ring web
Last synced: 11 days ago
JSON representation
Clojure HTTP server abstraction
- Host: GitHub
- URL: https://github.com/ring-clojure/ring
- Owner: ring-clojure
- License: mit
- Created: 2012-04-29T11:15:06.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-10-19T11:32:33.000Z (20 days ago)
- Last Synced: 2024-10-19T14:56:18.528Z (20 days ago)
- Topics: clojure, http, ring, web
- Language: Clojure
- Homepage:
- Size: 6.99 MB
- Stars: 3,760
- Watchers: 114
- Forks: 520
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-clojure - ring
- StarryDivineSky - ring-clojure/ring
README
# Ring [![Build Status](https://github.com/ring-clojure/ring/actions/workflows/test.yml/badge.svg)](https://github.com/ring-clojure/ring/actions/workflows/test.yml)
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## 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][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/## 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.13.0"}
Or to your Leiningen project file:
[ring/ring-core "1.13.0"]
## Documentation
* [Changelog](https://github.com/ring-clojure/ring/blob/master/CHANGELOG.md)
* [Wiki](https://github.com/ring-clojure/ring/wiki)
* [API docs](https://ring-clojure.github.io/ring/)## Contributing
Please read [CONTRIBUTING.md][5] before submitting a pull request.
[5]: https://github.com/ring-clojure/ring/blob/master/CONTRIBUTING.md
## 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-2024 Mark McGranaghan, James Reeves & contributors.
Released under the MIT license.