awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ring-clojure avatar

ring-clojure/ring

0
View on GitHub↗
3,880 stars·527 forks·Clojure·MIT·1 vue

Ring

Ring is a Clojure HTTP web library that represents requests and responses as immutable data structures. It provides a functional framework for web development, treating HTTP traffic as standardized maps to decouple application logic from specific server implementations.

The project features a middleware framework for composing reusable functional layers to handle cross-cutting concerns such as authentication and logging. It includes a server adapter system that translates raw traffic into request maps, as well as a dedicated integration layer for upgrading standard HTTP connections to bidirectional WebSockets.

Ring supports deployment across various environments through Java and Jakarta servlet adapters and embedded web server wrappers. Additional capabilities include asynchronous request processing via callbacks, session management using cookies, static resource serving, and dynamic namespace reloading for development.

Features

  • Map-Based Request Representations - Represents HTTP traffic as immutable data maps to decouple application logic from specific server implementations.
  • Clojure - Provides a functional framework for building web applications in Clojure using immutable data structures.
  • HTTP Server Abstractions - Provides a standardized abstraction for HTTP requests and responses that allows handlers to remain portable across different server implementations.
  • Higher-Order Function Wrapping - Wraps handlers in higher-order functions to add shared behavior and augment functionality across the application.
  • Server Traffic Adapters - Translates raw socket traffic and servlet requests into standardized maps for consumption by application handlers.
  • Clojure HTTP Libraries - Represents HTTP requests and responses as immutable data structures for functional web development in Clojure.
  • HTTP Handler Adapters - Connects handlers to server implementations via adapters that translate raw traffic into request and response maps.
  • HTTP Middleware Pipelines - Implements a middleware framework for composing reusable functional layers to handle cross-cutting concerns like authentication and logging.
  • Ordered Middleware Pipelines - Uses a middleware pipeline to wrap request handlers in nested functions for cross-cutting concerns like logging and authentication.
  • Rapid Iteration Workflows - Supports dynamic namespace reloading to allow developers to see code changes instantly without restarting the server.
  • Servlet Adaptation - Connects application logic to Java or Jakarta servlet containers for deployment on enterprise application servers.
  • Servlet Adapters - Translates standardized Clojure request handlers into formats compatible with Java and Jakarta servlet containers.
  • Servlet Interface Bridges - Wraps functional handlers in a Java class that implements the servlet specification for deployment in traditional containers.
  • Servlet Specification Adapters - Converts request handlers into standard Java or Jakarta Servlets for deployment on compatible application servers.
  • WebSocket Protocol Upgrades - Implements the mechanism for upgrading standard HTTP connections to the WebSocket protocol for full-duplex communication.
  • WebSocket Connection Management - Manages the lifecycle of bidirectional socket communication and handles the upgrade from HTTP.
  • Session Cookie Tracking - Tracks user sessions across requests using cookies and manages temporary data via a short-term flash store.
  • Server-Side Session Management - Tracks user identity across multiple HTTP requests by mapping cookie identifiers to server-side data stores.
  • Async Response Callbacks - Processes requests using deferred callbacks to prevent thread blocking during long-running operations or I/O.
  • Asynchronous Request Processing - Processes requests using callbacks for responses and exceptions to maintain server responsiveness during external I/O.
  • Embedded Web Servers - Integrates a lightweight web server directly into the application process to handle HTTP traffic.
  • HTTP Header and Cookie Management - Automatically calculates and manages outgoing HTTP headers including content length and cache control.
  • Real-Time Communication - Upgrades standard HTTP connections to bidirectional WebSockets for real-time, full-duplex communication.
  • Request Body Parsing - Extracts data from query strings, encoded bodies, and multipart requests into structured maps.
  • Static Asset Serving - Delivers files and assets from a directory or classpath to clients using appropriate HTTP headers.
  • HTTP Clients and Servers - Standard HTTP server abstraction for Clojure.

Historique des stars

Graphique de l'historique des stars pour ring-clojure/ringGraphique de l'historique des stars pour ring-clojure/ring

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Ring

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Ring.
  • salvo-rs/salvoAvatar de salvo-rs

    salvo-rs/salvo

    4,376Voir sur GitHub↗

    Salvo is a comprehensive Rust web framework for building asynchronous HTTP servers and web applications. It features a hierarchical web router that uses a tree-based structure to map requests to handlers and an asynchronous middleware pipeline based on the onion model for request and response pre- and post-processing. The framework is distinguished by its native support for modern network protocols, including a QUIC-based HTTP/3 implementation alongside HTTP/1 and HTTP/2. It includes an integrated OpenAPI documentation generator that extracts schemas directly from handler signatures to produc

    Rustasyncframeworkhttp-server
    Voir sur GitHub↗4,376
  • pylons/pyramidAvatar de Pylons

    Pylons/pyramid

    4,086Voir sur GitHub↗

    Pyramid is a Python web framework and WSGI toolkit designed for building web applications. It functions as a URL routing engine that maps incoming HTTP requests to specific view callables using both pattern-based routing and hierarchical resource tree traversal. The framework is distinguished by its hybrid dispatch system, allowing developers to combine regular expression URL matching with the ability to resolve requests by navigating a tree of nested objects. It implements a flexible component architecture that supports application registry management, deferred configuration execution, and t

    Pythonpylonspyramidpython
    Voir sur GitHub↗4,086
  • h3js/h3Avatar de h3js

    h3js/h3

    5,353Voir sur GitHub↗

    Hono is a minimal JavaScript HTTP framework designed for building web servers across multiple runtimes, including Node.js, edge runtimes, and serverless platforms. It functions as a cross-runtime web server and a web standard API wrapper, normalizing various runtime request and response objects into standard Web API signatures. The project serves as an HTTP middleware orchestrator and request handler, utilizing a middleware-based request pipeline and hierarchical route mounting to create modular server structures. It distinguishes itself through a runtime-agnostic event wrapper that ensures c

    TypeScript
    Voir sur GitHub↗5,353
  • vibora-io/viboraAvatar de vibora-io

    vibora-io/vibora

    5,592Voir sur GitHub↗

    Vibora is an asynchronous Python web framework and built-in HTTP server designed for building high-performance web applications. It utilizes an asynchronous event loop and coroutines to process network requests and serve responses without requiring external server wrappers. The project features a high-performance asynchronous schema validator for request integrity, a non-blocking template engine with support for hot-reloading, and a WebSocket communication server for bidirectional real-time data exchange. The framework covers a broad range of capabilities, including modular route management

    Pythonasyncclientframework
    Voir sur GitHub↗5,592
Voir les 30 alternatives à Ring→

Questions fréquentes

Que fait ring-clojure/ring ?

Ring is a Clojure HTTP web library that represents requests and responses as immutable data structures. It provides a functional framework for web development, treating HTTP traffic as standardized maps to decouple application logic from specific server implementations.

Quelles sont les fonctionnalités principales de ring-clojure/ring ?

Les fonctionnalités principales de ring-clojure/ring sont : Map-Based Request Representations, Clojure, HTTP Server Abstractions, Higher-Order Function Wrapping, Server Traffic Adapters, Clojure HTTP Libraries, HTTP Handler Adapters, HTTP Middleware Pipelines.

Quelles sont les alternatives open-source à ring-clojure/ring ?

Les alternatives open-source à ring-clojure/ring incluent : salvo-rs/salvo — Salvo is a comprehensive Rust web framework for building asynchronous HTTP servers and web applications. It features a… pylons/pyramid — Pyramid is a Python web framework and WSGI toolkit designed for building web applications. It functions as a URL… h3js/h3 — Hono is a minimal JavaScript HTTP framework designed for building web servers across multiple runtimes, including… vibora-io/vibora — Vibora is an asynchronous Python web framework and built-in HTTP server designed for building high-performance web… hhxsv5/laravel-s — This project is a high-performance PHP application server designed to keep applications resident in memory,… middleapi/orpc — orpc is a contract-first API development framework for TypeScript that starts with a shared contract definition and…