# nginx-clojure/nginx-clojure

Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers.

Repository: https://github.com/nginx-clojure/nginx-clojure
Canonical: https://ross.abutalabs.com/products/nginx-clojure
Homepage: http://nginx-clojure.github.io
Language: Java
License: NOASSERTION
License Family: other
Topics: nginx, clojure, java, groovy, nginx-clojure, nginx-java
Last push: 2026-08-10T12:11:00+00:00

## Health v2 (maintenance only)
Score: 66/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 97, release rhythm 8, longevity 100
- inputs: {"age_days": 4653, "days_push": 23, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1084, forks 113 (observed 2026-08-28T04:03:31.595994+00:00)

## What it is
An Nginx module that embeds Clojure, Java, or Groovy programs directly inside Nginx, typically running Ring-based HTTP handlers. It supports access/header/body/log handlers, server-side WebSockets, JAX-RS via a built-in Jersey container, Tomcat 8 embedding, and coroutine-based non-blocking sockets.

## Use cases
- run ring handlers inside nginx without a separate app server
- write nginx access or body filter handlers in clojure or java
- serve websockets and server-sent events from nginx
- embed a servlet/jsp tomcat app inside nginx
- build jax-rs restful services served directly by nginx
- handle thousands of concurrent connections with coroutine-based non-blocking sockets
- share state across nginx worker processes with a shared memory map

## When to choose
- you want to run Clojure/Java/Groovy web handlers with nginx-level performance and no reverse proxy hop
- you need nginx-phase hooks (access, header/body filter, log) implemented in JVM languages
- you want servlet 3.1/JSP/websocket support inside nginx via Tomcat embedding

## When to avoid
- you use a language or runtime other than Clojure/Java/Groovy
- you prefer a standalone app server behind nginx rather than a compiled nginx module
- you need a pure-PHP/Python/Node stack

## Facets
- artifact type: library
- maturity: maintenance
- function: http-server, middleware, websocket, routing
- domain: web-development, backend, developer-tools
- platform: jvm, jvm-scripting
- tags: nginx-module, ring, clojure, java, groovy, coroutines, servlet, tomcat-embedding, jax-rs, linux, macos, nginx

## Member repositories
- nginx-clojure/nginx-clojure (main) score 66

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:31.595994+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:50:08.885054+00:00, confidence not recorded.
  - readme: https://github.com/nginx-clojure/nginx-clojure (fetched 2026-08-28T04:03:31.595994+00:00, sha 1f22e33056de)
  - homepage: http://nginx-clojure.github.io (fetched 2026-08-29T12:52:51.698282+00:00, sha b5b8ca6feac9)
- Data as of 2026-08-30T08:39:29.467469+00:00.
