- In sets, tables, strtabs, critbits, xmltree
- This uses the new var parameter overloading
- mget variants still exist, but are deprecated in favor of `[]`
- Includes tests and fixed tests and usages of mget
- The non-var `[]` now throws an exception instead of returning binary 0
or an empty string
- Export socket field of AsyncHttpServer and addHeaders proc for templates
- Make respond a template instead of proc because of how often it's called.
This means no more "await" when invoking it.
- Optimize respond template with special case for empty headers and
Content-Length entry
- newRequest doesn't allocate a hostname and body anymore because they're
copied in later
- Major changes to processClient to prevent allocations and copies
- readInto, readIntoBuf, are templates instead of procs now
- New recvLineInto template that reads directly into a string instead of
creating a new one. Used by recvLine proc now
- Need fd and bufLen fields of AsyncSocketDesc exported because of the
templates
- recv returns a shallow string to prevent copying
- This gives significant speedups, mostly by using templates instead of
creating new Futures and waiting for them all the time.
- Added a recvInto proc that takes a cstring as argument and reads into
it instead of returning a newly allocated string. This is pretty
unnice because of code duplication with recv. Calling recvInto from
recv is not a good solution because of the additional future that gets
created.
- Windows version is totally untested
- A version of parseUri that takes a uri as parameter and modifies it
- Export initUri so you can use the new parseUri better
- Avoid creating new strings