important parts of the api that are missing in no particular order ------------------------------------------ missing apr_buckets api: destroy, delete tied filehandle interface: -EOF, TELL, SEEK -READLINE - proper implementation (see comment in Apache::compat) need to attempt to fix that interface so it'll work with IPC::Open* family $r->finfo: need apr_finfo_t <-> struct stat conversion (might already be there, haven't looked close enough yet) $r->chdir_file: not safe for threaded environments. should at least unshift @INC with dirname $r->filename. consider overriding open() to resolve relative filenames. $r->child_terminate: haven't looked into this, but clearly not an option with threaded mpms. might consider knocking off the current PerlInterpreter instead. $r->log_reason: should be simple, see modperl_log.h Apache->server_root_relative: needs to default to current pool (pconf at startup, r->pool at request time) APR::URI missing $uri->rpath Apache::Util::* escape_path() - (was escape_uri) can be changed in apache not to require a pool size_string() - can we use apr_strfsize ? escape_html() - consider jeff baker's more robust implementation of my_escape_html(), which should probably be made in apache-2.0 itself ht_time() - now requires a pool, temporarily renamed format_time for 1.x ht_time compat. should we just leave as is or see if ht_time can be changed to not require a pool? $r->document_root: cannot currently be modified. requires locking since it is part of the per-server config structure which is shared between threads $r->send_fd: need to figure out howto map PerlIO <-> apr_file_t at the moment $r->send_fd is implement in Apache::compat, functions, but does not have the performance benefits of ap_send_fd() however, $r->sendfile is a new function that opens the file for you and calls ap_send_fd() underneath. ap_send_fd() in APR doesn't work with fd's which aren't files and of unknown length, therefore it cannot be used for implementing 1.x compatible send_fd. Apache::{Server,Process} classes: require mutex lock for writing Apache->import: not yet implemented, required for exit/warn overridding $r->{get,set,push}_handlers: need to deal properly with modification of the current handler phase we're running. Apache->request: need to deal with subclass objects which are not a request_rec (e.g. HASH ref) $r->cgi_header_out: anything in 1.x land actually using it? $r->slurp_filename: optimized version not yet implemented (compat version exists in Apache::compat) Apache->unescape_url{_info}: not yet implemented. should be moved to Apache::Util mod_perl::import(): not yet implemented Apache::FakeRequest: since APR can be used outside of httpd, and we can alloc request_rec and similar structures, it should be possible to bootstrap an inside-httpd interface and outside-httpd interface. its not really worthwhile looking at until APR actually installs its *.so or *.a libraries somewhere apxs can find them. and, there's a bunch of util functions (e.g. URI stuff) that is supposed to move from httpd into apr-util.