GitHub / nginx-clojure / nginx-clojure
Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers.
JSON API: http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nginx-clojure%2Fnginx-clojure
PURL: pkg:github/nginx-clojure/nginx-clojure
Stars: 1,083
Forks: 113
Open issues: 34
License: other
Language: Java
Size: 3.72 MB
Dependencies parsed at: Pending
Created at: almost 12 years ago
Updated at: about 1 month ago
Pushed at: over 1 year ago
Last synced at: 29 days ago
Commit Stats
Commits: 567
Authors: 12
Mean commits per author: 47.25
Development Distribution Score: 0.437
More commit stats: https://commits.ecosyste.ms/hosts/GitHub/repositories/nginx-clojure/nginx-clojure
Topics: clojure, groovy, java, nginx, nginx-clojure, nginx-java
v0.6.1-alpha
v0.6.1-alpha Pre-release
0.6.0-alpha (2024-05-13)
- New Feature: #282 Directives for jvm int/exit handler properties
- New Feature: #283 Enable coroutine context for invoking config method of a handler with coroutine mode
- New Feature: #284 Rewrite handlers can add/update request headers
- New Feature: #286 Support load-balancing handler
- New Feature: #294 Support Nginx 1.25.0
- Bug Fix: #279 Java.lang.VerifyError
- Bug Fix: #280 NginxSharedHashMap.atomicAddLong returns wrong value when value is very large
- Bug Fix: #281 Remote debug issue on jdk13+ with coroutine mode
- Bug Fix: #302 Error: undeclared “lcf” during installation
This alpha version has no offical binary distribution.
Download
0.6.0 2023-03-18
v0.6.0
0.6.0 (2023-03-18)
- New Feature: #270 All handlers can be used at http & server context
- New Feature: #272 Support Nginx 1.23.X where some internals have been changed
- New Feature: #250 Support to use jdk19 built-in coroutine viz. Continuation
- Binaries Distribution: Built with Nginx v1.23.3
- Documents: Add build notes for nginx-clojure-embed
Download
0.5.3 2022-03-10
v0.5.3
0.5.3 (2022-03-10)
- Bug Fix: #256 NginxClojureAsynSocket isClosed is not return correct result
- Binaries Distribution: Built with Nginx v1.20.2
Download
0.5.2 2020-12-23
v0.5.2
0.5.2 (2020-12-23)
- Bug Fix: #234 Try to fix no response when NGX_AGAIN return at next header filter
- Bug Fix: #233 Fix compiler warnings when there’s no zlib found
- Enhancement: Delayed update to improve setVariable/set-ngx-var! performance at thread-pool mode
- Example Project: Add an example project for Jersey & Spring DI
- Example Project: Add example for integration with Spring framework
- Binaries Distribution: Built with Nginx v1.18.0
Download
0.5.1 2019-11-23
v0.5.1
0.5.1 (2019-11-23)
- Bug Fix: Connection hangs with header filter at thread-pool mode #209 #153
- Bug Fix: Body filter hangs when body size is larger than the value specified in proxy_buffers #219
- Bug Fix: Segment fault caused by request is marked as closed too late #222
- Code Style: Fix generic warnings in java code code-style #223 (Thanks to Michael @mgoblin)
- Bug Fix: NPE caused by damaged memory because unsafe modify response headers #198
- Bug Fix: Wrong response for uncompressed message with PMCE enabled #163
- CI: both auto-triggered unit test and integration test use travis-ci
Download
0.5.0 2019-10-26
v0.5.0
0.5.0 (2019-10-26)
- New Feature: Java 9, 10, 11, 12 support. But Java 6 and Java 7 are deprecated now.
- New Feature: Log handler
- New Feature: HTTP V2 support (thanks to Nginx v1.14.2)
- Bug Fix: Memory leak with file handler #180
- Bug Fix: Zero buffer error when hijack_send empty string #181
- Bug Fix: Mysql driver issue about jdbc4 flag
- Bug Fix: ContainsKey of nginx shared map
- Bug Fix: NginxRequest.setVariable in a rewrite handler will hang
- Bug Fix: Segmentation fault on shutdown
- Bug Fix: Make clojure request map immutable for compojure
- Enhancement: API for discarding request body (request.discardRequestBody())
- Enhancement: Coroutine support for cascade constructor invoking
- Enhancement: Configurable headers/variables prefetch for more safety in multithreaded mode
- Binaries Distribution: built with Nginx v1.14.2
Download
0.4.5 2017-05-28
v0.4.5
0.4.5 (2017-05-28)
- New Feature: Support to be compiled as Nginx dynamic module, thanks to Andrew Hutchings
- Bug Fix: Cannot add multiple Cookies in a response
- Bug Fix: Too many empty chunks are passed to Body filter & some body data lost
- Enhancement: [Nginx-Jersey] Support jersey application sub class
- Enhancement: Try to use enviroment variable JAVA_HOME to detect jvm when jvm_path is auto
- Enhancement: NginxSharedHashMap.keySet/values/entrySet for debug/test usage.
- Bug Fix: Can not use more than two shared maps.
- Bug Fix: NullPointerExecption will happen when multiple rewrite handlers are invoked for one request
- Bug Fix: Can’t access ring request data in Sente handler. (content_handler_property fore-prefetch-all-properties true;)
- Enhancement: Compile against Nginx 1.11 & Nginx 1.12
- Bug Fix: Nginx reload will cause connection reset without response
- Bug Fix: Header filter can not change response status from upstream
- Bug Fix: body filters sometimes crash under thread pool mode
- Binaries Distribution: built with the latest stable Nginx v1.12.0 & openssl v1.1.0e
Download
v0.4.4 2016-03-04
v0.4.4
0.4.4 (2016-03-04)
- New Feature: experimental nginx body filter by Java/Clojure/Groovy (issue #107)
- New Feature: read request body by event callback (issue #109)
- Bug Fix: 500 (internal server error) returns when committing 2000+ files to nginx as a proxy for apache mod_dav_svn (issue #106)
Download
v0.4.3 2015-10-25
v0.4.3
0.4.3 (2015-10-25)
- New Feature: Add directive jvm_classpath which supports wildcard character * (issue #95)
- New Feature: Add directive jvm_classpath_check which is enabled by default and when it is enabled access permission about classpaths will be checked.
- New Feature: Add NginxPubSubTopic(Java)/PubSubTopic(Clojure) to simplify handling messages among Nginx worker processes. (issue #97)
- New Feature: Shared Map based on shared memory (issue #96) and it has two implementations : tinymap & hashmap.
- New Feature: Shared Map based Ring session store (issue #98)
- Enhancement: on-broadcast-event-decode!/on-broadcast! returns a removal function which can be used to remove the registered decoder/listener
- Enhancement: embedded nginx-clojure becomes friendly to mock tests and also fix issue #101
- Bug Fix: After stopping an embedded Nginx-Clojure server keep-alived connections become CLOSE_WAIT.
- Bug Fix: HackUtil.decode decodes unnecessary chars when several strings share one char[] generally on JDK 6
- Bug Fix: jvm crashes with thread pool mode when open_file_cache is enabled.
- Bug Fix: Fix compile errors when no sha1-implementation/zlib can be found (issue #99)
- Example Project: Add an example project about clojure web dev to show how to develop & deploy with Nginx-Clojure. Thanks to Peter Taoussanis without whose
comments there would not be such example project. (issue #91) - Documents: Add Directives Reference
Download
v0.4.2 2015-08-31
v0.4.2
0.4.2 (2015-08-31)
- New Feature: Support Sente (issue #87, see this PR)
- New Feature: Per-message Compression Extensions (PMCEs) for WebSocket (issue #88)
- New Feature: Add
add-aggregated-listener!to makes handling small but fragmented websocket messages easier by clojure. - Enhancement: Support to build on a Linux ARM machine
- Bug Fix: WebSocket and Server Channel do not Work with Some Ring Middlewares (issue #89)
- Bug Fix: Autodetect jvm_path doesn’t work sometimes
Download