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: 30 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
APIs for Embedding, Autodetect jvm_path, Unix domain socket and etc.
v0.4.1
0.4.1 (2015-08-12)
- New Feature: Coroutine based socket supports unix domain socket
- New Feature: APIs for Embedding Nginx-Clojure into a standard Clojure/Java/Groovy App (issue #86)
- New Feature: Autodetect jvm_path (issue #85)
- New Feature: Support to use annotation to mark a class or method to be suspenable in coroutine context (issue #84)
- Enhancement: Auto send error when meets a non websocket request with
auto_upgrade_wsis on - Enhancement: Add
websocket-upgrade!to server channel API - Enhancement: Add
WholeMessageAdapterto make handling small websocket messages easier. - Bug Fix: NginxHttpServerChannel.write(ByteBuffer buf) does not reset the buffer’s position (issue #83)
- Bug Fix: No access to tomcat server 8.24 from nginx-clojure (issue #82)
- Binaries Distribution: Including some java sources for easy debug.
- Build Script: Autodetect JNI header files
Download
WebSocket, Support Embedding Tomcat & Jersey (java standard RESTful web services)
v0.4.0
0.4.0 (2015-07-06)
- New Feature: Service Side Websocket (issue #73)
- New Feature: A build-in Jersey container to support java standard RESTful web services (JAX-RS 2.0) (issue #74)
- New Feature: Tomcat 8 embedding support (so servlet 3.1/jsp/sendfile/JSR-356 websocket work within nginx!) (issue #67)
- New Feature: Coroutined Based Client Socket Supports to Bind to Specified IP Address (issue #69)
- New Feature: Handler’s Property Configuration (issue #66)
- Enhancement: NginxHttpServerChannel can work with Rewrite Handler or Access Handler (issue #79)
- Enhancement: Configurable Write Buffer Size for SSE or Websocket (issue #76)
- Bug Fix: When we do not configure jvm_path proxy_pass will not work (issue #72)
- Bug Fix: nginx worker restart when get the value of header X-Forwarded-For (issue #70)
- Bug Fix: proxy_cache_path causes crash (issue #64)
- Bug Fix: send_timeout does not take effect with NginxHttpServerChannel (issue #78)
- Bug Fix: Waving tool generates wrong wave information of fuzzing classes (issue #80)
- Documents : Release History link in README (issue #68)
- Binaries Distribution: built with The latest stable Nginx v1.8.0 which released at 2015-04-21.
Download
Supports Nginx Access Handler & Header Filter & other Enhancements
v0.3.0
0.3.0 (2014-12-11)
- Discard: Directive
clojure,clojure_codeare no longer supported, usehandler_type/content_handler_type,
handler_name/content_handler_name,handler_code/content_handler_codeinstead. - Discard: Now
handler_***can not be used to declare a nginx worker initialization handler, use `jvm_init_handler_*** instead. - New Feature: Supports writing nginx access handler by java/clojure/groovy (issue #53)
- New Feature: Supports writing nginx header filter by java/clojure/groovy (issue #55)
- New Feature: Add new directive
max_balanced_tcp_connectionsto make nginx auto set worker_connections. - Enhancement: For Java We can use r.setVariable, r.getVariable now if r is an instance of NginxJavaRequest.
- Deprecated Directives: handler_type, handler_name, handler_code are deprecated and maybe will be removed in the next version, add new directive content_handler_type, content_handler_code, content_handler_code
- New Directives: rewrite_handler_type, access_handler_type, header_filter_type, body_filter_type
- New Feature: Supports nested locations (issue #56)
- Bug Fix : uppercase letters in nginx variable name can not work (issue #54)
- Bug Fix: The first registered handler will not work if there ’s a asynchronous reading of request body (issue #51)
- Enhancement:
handlers_lazy_initcan be used to make handler initialized lazily or eagerly (issue #52)
Download
Optimization of encoding String & Supports to Access Request BODY in Rewrite Handler
v0.2.7
0.2.7 (2014-11-11)
- New Feature: Compiling option for disabling all functions silently when JVM_PATH not configured. (issue #47)
- New Feature: Access request BODY in rewrite handler (issue #49)
- Enhancement : Optimization of encoding String to Nginx temp buffer chain to reduce Java heap memory usage and improve the performance.
Download
Fix Bugs about Rewrite Handler & built-in jvm variable #{pno}
v0.2.6
0.2.6 (2014-10-10)
- Fix Bug: rewrite handler does not handle write event correctly with thread pool mode or coroutine mode (issue #43)
- Fix Bug: built-in jvm variable #{pno} doesn’t work (issue #44)
- Fix Bug: rewrite_handler_name does not work without content handler (issue #45). Thanks Eric Kubacki for finding this bug.
- Fix Bug: rewrite handler does not handle write event correctly with thread pool mode or coroutine mode (issue #43)
- Documents : Correct some inaccuracies and add section about logging in Chapter More about Nginx-Clojure
- Binaries: built with the lastest stable Nginx v1.6.2 which released at 2014-09-16.
Download
Long Polling, SSE, Win64, Broadcast Events and Asynchronous Channels
v0.2.5
0.2.5 (2014-09-07)
- New Feature: Reference variables in jvm_options & different jvm debug ports for jvm processes (issue #42)
- New Feature: Server Sent Events(SSE) & Long polling (issue #41, issue #36)
- New Feature: Supports 64-bit JDK on 64-bit Windows (issue #40)
- New Feature: Coroutine based socket supports JDK8 (issue #39)
- New Feature: More easier to archive Sub/Pub services with Broadcast Events to all Nginx workers (issue #39)
- New Feature: Asynchronous Channel a wrapper of asynchronous socket to make the usage easier (issue #37)
- Enhancement: Fix–On Windows a little many write events happen and these events seem useless (issue #35)
Download
Important Bugs fixed & Support Groovy
v0.2.4
0.2.4 (2014-07-25)
- New Feature: Support Groovy - another dynamic jvm language (issue #34)
- Fix bug: Slow Memory Leak for Coroutine based Socket bug (issue #32 )
- Fix bug: Should Clone ThreadLocals for Coroutines (issue #31)
- New Feature: More friendly to java users who maybe know nothing about clojure feature (issue #29)
- Five new nginx directives
handler_type,handler_name,handler_code,rewrite_handler_name,rewrite_handler_code.
Make Clojure/Java/Groovy handler configurations have the same form. e.g. The old pair of nginx directivesclojure,clojure_codeis equivalent tohandler_type='clojure'+handler_code.
The binary release (support win32, linux x86 32bit, linux x64, macosx) can be found from https://sourceforge.net/projects/nginx-clojure/files/
Download
Support user defined http request method & Some serious bugs fixed
v0.2.3
0.2.3 (2014-07-05)
- Fix issue After invoking on coroutine based socket nginx worker will exit and be recreated when network is disabled (issue #26)
- Fix issue PATCH loses the data payload (issue #27)
- Support user defined http request method (issue #28 )
- Fix issue Nginx worker crashes when to fetch http header “authorization” from request (issue #30)
Download
Fix Bug of NPE with Compojure+Solrj+httpclient & Add Verifying Option for Auto Generated Waving Configurations
v0.2.2
0.2.2 (2014-05-31)
- Fix bug of with Compojure 1.1.5 + Apache Solrj 4.3.0 + httpclient 4.3.2 NPE happens first time then everything is OK (issue #22)
- Verifying option for auto generated waving configurations needed by coroutine based socket (issue #23)
Download
Support nginx rewrite handler & multiple sockets parallel in sub coroutine
v0.2.1
0.2.1 (2014-05-17)
- Support to close coroutine based socket from non-main thread (issue #19)
- Auto generated waving class configurations about Proxy InvocationHandler instance (issue #17 )
- Supports auto turn on thread pool mode when turning on Run Tool Mode feature (issue #16 )
- Fix bug of reading from coroutine based socket inputstream returns 0 when eof, should return -1 (issue #15)
- Handle multiple sockets parallel in sub coroutines, e.g. we can invoke two remote services at the same time feature (issue #14)
- Support nginx rewrite handler to set var before proxy pass (issue #3)
Download