Skip to content

Commit

Permalink
doc: updated our TODO list.
Browse files Browse the repository at this point in the history
  • Loading branch information
agentzh committed Dec 8, 2014
1 parent f9709b6 commit 701dd52
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 13 deletions.
55 changes: 45 additions & 10 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ Table of Contents
* [Mixing with SSI Not Supported](#mixing-with-ssi-not-supported)
* [SPDY Mode Not Fully Supported](#spdy-mode-not-fully-supported)
* [TODO](#todo)
* [Short Term](#short-term)
* [Longer Term](#longer-term)
* [Changes](#changes)
* [Test Suite](#test-suite)
* [Copyright and License](#copyright-and-license)
Expand Down Expand Up @@ -856,21 +854,58 @@ Certain Lua APIs provided by ngx_lua do not work in Nginx's SPDY mode yet: [ngx.
TODO
====

[Back to TOC](#table-of-contents)
* add `*_by_lua_block` directives for existing `*_by_lua` directives so that we put literal Lua code directly in curly braces instead of an nginx literal string. For example,
```nginx
Short Term
----------
content_by_lua_block {
ngx.say("hello, world\r\n")
}
```
which is equivalent to
```nginx
content_by_lua '
ngx.say("hello, world\\r\\n")
';
```
but the former is much cleaner and nicer.
* cosocket: implement LuaSocket's unconnected UDP API.
* add support for implementing general TCP servers instead of HTTP servers in Lua. For example,
```lua

tcp {
server {
listen 11212;
handler_by_lua '
-- custom Lua code implementing the special TCP server...
';
}
}
```
* add support for implementing general UDP servers instead of HTTP servers in Lua. For example,
```lua

udp {
server {
listen 1953;
handler_by_lua '
-- custom Lua code implementing the special UDP server...
';
}
}
```
* ssl: implement directives `ssl_certificate_by_lua` and `ssl_certificate_by_lua` to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake.
* shm: implement a "shared queue API" to complement the existing [shared dict](#lua_shared_dict) API.
* cosocket: add support in the context of [init_by_lua*](#init_by_lua).
* cosocket: implement the `bind()` method for stream-typed cosockets.
* cosocket: pool-based backend concurrency level control: implement automatic `connect` queueing when the backend concurrency exceeds its connection pool limit.
* [ngx.re](#ngxrematch) API: use `false` instead of `nil` in the resulting match table to indicate non-existent submatch captures, such that we can avoid "holes" in the array table.
* review and apply Jader H. Silva's patch for `ngx.re.split()`.
* review and apply vadim-pavlov's patch for [ngx.location.capture](#ngxlocationcapture)'s `extra_headers` option
* use `ngx_hash_t` to optimize the built-in header look-up process for [ngx.req.set_header](#ngxreqset_header), [ngx.header.HEADER](#ngxheaderheader), and etc.
* add configure options for different strategies of handling the cosocket connection exceeding in the pools.
* add directives to run Lua codes when nginx stops.
* add `ignore_resp_headers`, `ignore_resp_body`, and `ignore_resp` options to [ngx.location.capture](#ngxlocationcapture) and [ngx.location.capture_multi](#ngxlocationcapture_multi) methods, to allow micro performance tuning on the user side.

[Back to TOC](#table-of-contents)

Longer Term
-----------
* add automatic Lua code time slicing support by yielding and resuming the Lua VM actively via Lua's debug hooks.
* add `stat` mode similar to [mod_lua](https://httpd.apache.org/docs/trunk/mod/mod_lua.html).

Expand Down
45 changes: 42 additions & 3 deletions doc/HttpLuaModule.wiki
Original file line number Diff line number Diff line change
Expand Up @@ -700,15 +700,54 @@ Certain Lua APIs provided by ngx_lua do not work in Nginx's SPDY mode yet: [[#ng
= TODO =
== Short Term ==
* add <code>*_by_lua_block</code> directives for existing <code>*_by_lua</code> directives so that we put literal Lua code directly in curly braces instead of an nginx literal string. For example,
<geshi lang="nginx">
content_by_lua_block {
ngx.say("hello, world\r\n")
}
</geshi>
: which is equivalent to
<geshi lang="nginx">
content_by_lua '
ngx.say("hello, world\\r\\n")
';
</geshi>
: but the former is much cleaner and nicer.
* cosocket: implement LuaSocket's unconnected UDP API.
* add support for implementing general TCP servers instead of HTTP servers in Lua. For example,
<geshi lang="lua">
tcp {
server {
listen 11212;
handler_by_lua '
-- custom Lua code implementing the special TCP server...
';
}
}
</geshi>
* add support for implementing general UDP servers instead of HTTP servers in Lua. For example,
<geshi lang="lua">
udp {
server {
listen 1953;
handler_by_lua '
-- custom Lua code implementing the special UDP server...
';
}
}
</geshi>
* ssl: implement directives <code>ssl_certificate_by_lua</code> and <code>ssl_certificate_by_lua</code> to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake.
* shm: implement a "shared queue API" to complement the existing [[#lua_shared_dict|shared dict]] API.
* cosocket: add support in the context of [[#init_by_lua|init_by_lua*]].
* cosocket: implement the <code>bind()</code> method for stream-typed cosockets.
* cosocket: pool-based backend concurrency level control: implement automatic <code>connect</code> queueing when the backend concurrency exceeds its connection pool limit.
* [[#ngx.re.match|ngx.re]] API: use <code>false</code> instead of <code>nil</code> in the resulting match table to indicate non-existent submatch captures, such that we can avoid "holes" in the array table.
* review and apply Jader H. Silva's patch for <code>ngx.re.split()</code>.
* review and apply vadim-pavlov's patch for [[#ngx.location.capture|ngx.location.capture]]'s <code>extra_headers</code> option
* use <code>ngx_hash_t</code> to optimize the built-in header look-up process for [[#ngx.req.set_header|ngx.req.set_header]], [[#ngx.header.HEADER|ngx.header.HEADER]], and etc.
* add configure options for different strategies of handling the cosocket connection exceeding in the pools.
* add directives to run Lua codes when nginx stops.
* add <code>ignore_resp_headers</code>, <code>ignore_resp_body</code>, and <code>ignore_resp</code> options to [[#ngx.location.capture|ngx.location.capture]] and [[#ngx.location.capture_multi|ngx.location.capture_multi]] methods, to allow micro performance tuning on the user side.
== Longer Term ==
* add automatic Lua code time slicing support by yielding and resuming the Lua VM actively via Lua's debug hooks.
* add <code>stat</code> mode similar to [https://httpd.apache.org/docs/trunk/mod/mod_lua.html mod_lua].
Expand Down

0 comments on commit 701dd52

Please sign in to comment.