| -*- mode:org -*- | |
| * Requirements: | |
| ** lua 5.1 ( http://www.lua.org/ ) | |
| ** Apache HTTPD 2.2 ( http://httpd.apache.org/ ) or Apache HTTPD 2.3 | |
| * Documentation | |
| See docs/README | |
| * Building | |
| For now, see docs/building-from-subversion.txt | |
| * To Consider | |
| Allow definition of lua_State instances associated with arbitrary | |
| pool using the pool's user_data constuct. There would, here, be two | |
| types, pooled and singleton. On the other hand, singleton would work | |
| fine for almost all cases -- the exception being a process or server | |
| pool, and then we could stay singleton anyway and lock around it. | |
| The current "server scope" behavior could, instead, fall into | |
| connection scope, for long-lived connections, really we want thread | |
| scope (which Brian Akins knows how to do). Is there a pool | |
| associated with a thread? Contention on the pool is a pain in a | |
| highly concurrent environment. | |
| Could use apr_thread_data_(get|set) if I can find a way to hook into | |
| thread destruction. Looks like apr threads let you use the standard | |
| APR_POOL_DECLARE_ACCESSOR(thread); defined method, just need to look | |
| up what form that takes. -- apr_thread_pool_get -- just attach to | |
| that pool. | |
| Given that, we can associate a hash of lua_State instances with | |
| arbitrary pools, such as the request pool, thread pool, server pool, | |
| etc. We then use the file as key into the hash. Users, able to | |
| specify the handler function, can then make use of the same file | |
| with different handlers to reuse states. | |
| * Task List | |
| ** TODO Use r->file to determine file, doing rewriting in translate_name | |
| ** TODO Change to controlling lifecycle by passing in a pool? | |
| Need to determine how to handle server scoped then! | |
| ** TODO Provide means to get useful output from lua errors in response body | |
| Probably have to put it on the vm spec for pre-handler errors, as | |
| it is pre-handler, will prolly be on the request_config somewhere, | |
| but sometimes cannot put there, so... fun | |
| ** TODO Filters | |
| ** TODO Mapping in the server_rec | |
| ** TODO Connection scoped vms | |
| ** TODO Figure out how reentrancy works regarding filter chain stuff. | |
| Do we need new "threads"? | |
| ** TODO Flesh out apw_*getvm for each flavor we allow | |
| ** TODO Rework apw_sgetvm to use the create_vm stuff like apw_rgetvm | |
| ** TODO apw_rgetvm needs to handle connection scoped vms | |
| ** TODO options in server scoped vms (ie, min and max vm counts) | |
| ** TODO provide means to implement authn and authz providers | |
| ** TODO: Flatten LuaHook* to LuaHook phase file fn ? | |
| ** TODO: Lua and ap_expr integration in one or both directions | |
| ** TODO: document or remove block sections | |
| ** TODO: test per-dir behavior of block sections | |
| ** TODO: Catch-up documentation on r: methods | |
| ** TODO: 500 errors instead of 404 with AddHandler lua-script | |
| ** TODO: Suppress internal details (fs path to scripts, etc) in error responses | |
| * License | |
| Apache License, Version 2.0, | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| See NOTICE file for more information | |
| * Problems and Patches: | |
| Please use dev@httpd.apache.org for discussing mod_lua development | |
| To subscribe send email to dev-subscribe@httpd.apache.org | |
| Note that this is for development discussion, not user support :-) | |
| * Contributors Include | |
| ** Brian McCallister | |
| ** Paul Querna | |
| ** Garrett Rooney | |
| ** Martin Traverso | |
| ** Brian Akins | |
| ** Justin Erenkrantz | |
| ** Philip M. Gollucci |