- 27 Jan, 2017 4 commits
-
-
Kenton Varda authored
The old semantics were intended to allow more implementation freedom, but I find in my actual code it's very convenient to rely on the actual implementation details. Other implementations will just have to deal with it.
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
- 26 Jan, 2017 1 commit
-
-
Kenton Varda authored
-
- 24 Jan, 2017 7 commits
-
-
Kenton Varda authored
Properties: - Presented as a LIBRARY, designed to be unopinionated about the application using it. - Uses KJ async framework. - Header parsing is zero-copy. The whole header block is read into a contiguous buffer, then parsed all at once. Avoids complicated state machinery (and is probably pretty fast). - Known headers are parsed to numeric identifiers so that the application doesn't need to look them up by string name. The app registers all headers it is interested in upfront, receiving numeric IDs for each. Some common headers also have pre-defined constants, avoiding the need for registration. - Connection-level headers (e.g. Content-Length, Transfer-Encoding) are handled entirely internally. - WebSocket support (planned). Not done yet: - Implement the version of HttpClient that connects to new servers as-needed, managing a pool of connections. Currently I've only implemented the version that takes a pre-existing connection and speaks HTTP on it. - Implement WebSockets. - Implement plugable transfer encodings (although I guess Chrome doesn't even support transfer encodings other than chunked; maybe it's a lost cause). - Implement HTTP/2, hopefully transparently (... someday).
-
Kenton Varda authored
- AsyncInputStream::tryGetLength() can report the amount of data the stream will produce. Useful for implementing HTTP Content-Length header. - AsyncInputStream::pumpTo() copies data from an input stream to an output stream, using double-dispatch to find an optimal approach.
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
- 23 Jan, 2017 1 commit
-
-
Kenton Varda authored
-
- 22 Jan, 2017 2 commits
-
-
Kenton Varda authored
Re-introduce async-io.c++ containing just the default implementations of methods on the abstract interfaces.
-
Kenton Varda authored
Rename async-io.c++ to async-io-unix.c++, in preparation for factoring out common bits from async-io-win32.c++.
-
- 05 Jan, 2017 2 commits
-
-
Kenton Varda authored
Fix conversion build error when building with Clang 4.0
-
Kenton Varda authored
Add getFd method to FdInputStream and FdOutputStream
-
- 03 Jan, 2017 1 commit
-
-
Ross Light authored
These methods are useful if you're receiving a generic stream in application code and would like to check some non-stream behavior about the file (e.g. stat or isatty). Of course, downcasting can fail and code should not rely on the file descriptor being available.
-
- 29 Dec, 2016 1 commit
-
-
Eric Fiselier authored
-
- 13 Dec, 2016 1 commit
-
-
Kenton Varda authored
handle empty structs in isCanonical()
-
- 12 Dec, 2016 2 commits
-
-
David Renshaw authored
-
Kenton Varda authored
The trick here is that you must specify the value as a separate constant with a defined type. Then, you can reference that constant where an AnyPointer is expected. Eventually we should maybe support some sort of inline syntax that specifies a type explicitly...
-
- 05 Dec, 2016 1 commit
-
-
Kenton Varda authored
-
- 01 Dec, 2016 2 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
-
- 27 Nov, 2016 1 commit
-
-
Kenton Varda authored
Support RPC on Windows (MinGW)
-
- 25 Nov, 2016 1 commit
-
-
Kenton Varda authored
A grab bag of small changes to support the MSVC port
-
- 19 Nov, 2016 5 commits
-
-
Harris Hancock authored
This is required to allow the compiler to successfully instantiate a JsonCodec::Handler<DynamicValue, Style::POINTER> using Handler's default partial specialization for Style::POINTER. Such an instantiation is currently only used in dead code that clang and gcc eliminate but MSVC does not, which is why the problem was not caught until now. Also implemented DynamicValue::Builder::as<DynamicValue>() to preserve symmetry.
-
Harris Hancock authored
-
Harris Hancock authored
For now, I'm just guessing on appropriate values for minStack and maxStack.
-
Harris Hancock authored
-
Harris Hancock authored
-
- 18 Nov, 2016 2 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
-
- 15 Nov, 2016 4 commits
-
-
Harris Hancock authored
-
Harris Hancock authored
-
Harris Hancock authored
-
Harris Hancock authored
-
- 12 Nov, 2016 1 commit
-
-
Kenton Varda authored
The implementation used by AsyncStreamFd was simply calling the general tryRead(), so why not?
-
- 07 Nov, 2016 1 commit
-
-
Kenton Varda authored
-