Skip to content

Commit cd01e7b

Browse files
committed
doc: updated our TODO list.
1 parent f9709b6 commit cd01e7b

File tree

2 files changed

+87
-13
lines changed

2 files changed

+87
-13
lines changed

README.markdown

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ Table of Contents
4242
* [Mixing with SSI Not Supported](#mixing-with-ssi-not-supported)
4343
* [SPDY Mode Not Fully Supported](#spdy-mode-not-fully-supported)
4444
* [TODO](#todo)
45-
* [Short Term](#short-term)
46-
* [Longer Term](#longer-term)
4745
* [Changes](#changes)
4846
* [Test Suite](#test-suite)
4947
* [Copyright and License](#copyright-and-license)
@@ -856,21 +854,58 @@ Certain Lua APIs provided by ngx_lua do not work in Nginx's SPDY mode yet: [ngx.
856854
TODO
857855
====
858856

859-
[Back to TOC](#table-of-contents)
857+
* 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,
858+
```nginx
860859
861-
Short Term
862-
----------
860+
content_by_lua_block {
861+
ngx.say("hello, world\r\n")
862+
}
863+
```
864+
which is equivalent to
865+
```nginx
866+
867+
content_by_lua '
868+
ngx.say("hello, world\\r\\n")
869+
';
870+
```
871+
but the former is much cleaner and nicer.
872+
* cosocket: implement LuaSocket's unconnected UDP API.
873+
* add support for implementing general TCP servers instead of HTTP servers in Lua. For example,
874+
```lua
875+
876+
tcp {
877+
server {
878+
listen 11212;
879+
handler_by_lua '
880+
-- custom Lua code implementing the special TCP server...
881+
';
882+
}
883+
}
884+
```
885+
* add support for implementing general UDP servers instead of HTTP servers in Lua. For example,
886+
```lua
887+
888+
udp {
889+
server {
890+
listen 1953;
891+
handler_by_lua '
892+
-- custom Lua code implementing the special UDP server...
893+
';
894+
}
895+
}
896+
```
897+
* ssl: implement directives `ssl_certificate_by_lua` and `ssl_certificate_by_lua_file` to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake. (already done in CloudFlare's private branch and powering CloudFlare's SSL gateway of its global network. expected to be opensourced in March 2015.)
898+
* shm: implement a "shared queue API" to complement the existing [shared dict](#lua_shared_dict) API.
899+
* cosocket: add support in the context of [init_by_lua*](#init_by_lua).
900+
* cosocket: implement the `bind()` method for stream-typed cosockets.
901+
* cosocket: pool-based backend concurrency level control: implement automatic `connect` queueing when the backend concurrency exceeds its connection pool limit.
902+
* [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.
863903
* review and apply Jader H. Silva's patch for `ngx.re.split()`.
864904
* review and apply vadim-pavlov's patch for [ngx.location.capture](#ngxlocationcapture)'s `extra_headers` option
865905
* 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.
866906
* add configure options for different strategies of handling the cosocket connection exceeding in the pools.
867907
* add directives to run Lua codes when nginx stops.
868908
* 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.
869-
870-
[Back to TOC](#table-of-contents)
871-
872-
Longer Term
873-
-----------
874909
* add automatic Lua code time slicing support by yielding and resuming the Lua VM actively via Lua's debug hooks.
875910
* add `stat` mode similar to [mod_lua](https://httpd.apache.org/docs/trunk/mod/mod_lua.html).
876911

doc/HttpLuaModule.wiki

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -700,15 +700,54 @@ Certain Lua APIs provided by ngx_lua do not work in Nginx's SPDY mode yet: [[#ng
700700
701701
= TODO =
702702
703-
== Short Term ==
703+
* 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,
704+
<geshi lang="nginx">
705+
content_by_lua_block {
706+
ngx.say("hello, world\r\n")
707+
}
708+
</geshi>
709+
: which is equivalent to
710+
<geshi lang="nginx">
711+
content_by_lua '
712+
ngx.say("hello, world\\r\\n")
713+
';
714+
</geshi>
715+
: but the former is much cleaner and nicer.
716+
* cosocket: implement LuaSocket's unconnected UDP API.
717+
* add support for implementing general TCP servers instead of HTTP servers in Lua. For example,
718+
<geshi lang="lua">
719+
tcp {
720+
server {
721+
listen 11212;
722+
handler_by_lua '
723+
-- custom Lua code implementing the special TCP server...
724+
';
725+
}
726+
}
727+
</geshi>
728+
* add support for implementing general UDP servers instead of HTTP servers in Lua. For example,
729+
<geshi lang="lua">
730+
udp {
731+
server {
732+
listen 1953;
733+
handler_by_lua '
734+
-- custom Lua code implementing the special UDP server...
735+
';
736+
}
737+
}
738+
</geshi>
739+
* ssl: implement directives <code>ssl_certificate_by_lua</code> and <code>ssl_certificate_by_lua_file</code> to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake. (already done in CloudFlare's private branch and powering CloudFlare's SSL gateway of its global network. expected to be opensourced in March 2015.)
740+
* shm: implement a "shared queue API" to complement the existing [[#lua_shared_dict|shared dict]] API.
741+
* cosocket: add support in the context of [[#init_by_lua|init_by_lua*]].
742+
* cosocket: implement the <code>bind()</code> method for stream-typed cosockets.
743+
* cosocket: pool-based backend concurrency level control: implement automatic <code>connect</code> queueing when the backend concurrency exceeds its connection pool limit.
744+
* [[#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.
704745
* review and apply Jader H. Silva's patch for <code>ngx.re.split()</code>.
705746
* review and apply vadim-pavlov's patch for [[#ngx.location.capture|ngx.location.capture]]'s <code>extra_headers</code> option
706747
* 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.
707748
* add configure options for different strategies of handling the cosocket connection exceeding in the pools.
708749
* add directives to run Lua codes when nginx stops.
709750
* 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.
710-
711-
== Longer Term ==
712751
* add automatic Lua code time slicing support by yielding and resuming the Lua VM actively via Lua's debug hooks.
713752
* add <code>stat</code> mode similar to [https://httpd.apache.org/docs/trunk/mod/mod_lua.html mod_lua].
714753

0 commit comments

Comments
 (0)