Skip to content

Commit 701dd52

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

File tree

2 files changed

+87
-13
lines changed

2 files changed

+87
-13
lines changed

README.markdown

+45-10
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` to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake.
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

+42-3
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</code> to allow using Lua to dynamically serve SSL certificates and keys for downstream SSL handshake.
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)