0011 measures that the standard library reaches TCP and stops, with no transport
security and no HTTP, and says that the transport in #27 and every request the
core makes rest on something outside it. 0243 answered the transport-security
half. Nothing has answered the HTTP half, so #27 has a decided way to validate a
certificate and no decided way to write a request or read a response.
What is wrong
No record names what speaks HTTP:
git rev-parse origin/main
5e9a9ecb2f85acc115e843f9a174a87c3bd30d63
git grep -n -i -E 'ureq|hyper|reqwest|attohttpc|minreq|isahc|curl' origin/main -- docs/decisions/ ; echo "exit=$?"
exit=1
grep -n 'No transport security and no HTTP' docs/decisions/0011-the-language-the-toolchain-and-the-binding-layer.md
221:**No transport security and no HTTP.** The networking module reaches TCP and
0027 leaves the protocol version to the means and to 0010. 0103 refuses writing
the protocol here by class, in its own words: a protocol, a parser of somebody
else's format, or a cryptographic primitive is a defect nobody sees until it is
exploited. So the means is a dependency, which one is 0103's judgement against
its licence set, its four behaviours and its worth test, and the graph is
counted per triple the way 0243 counted its own. Nothing on this board has done
that, and the fake server in tests/fake_server/ parsing HTTP by hand is a
test-tree choice under 0103's relaxation, not a means for src/.
What the answer has to meet
Each line is a landed record's requirement rather than a preference of mine,
and a candidate that cannot meet one is refused by that record before 0103 is
reached:
- 0027: a connect bound, a first-byte bound and a whole-request deadline that
are separate; connection reuse per origin that the core controls; a cancelled
body read to a bound and then the connection closed rather than drained; and
a resolver handed a host only after 0069's comparison admitted it, which
0027 puts inside the connect bound.
- 0009: two lanes the core owns and no runtime hosted by the client, so a
client that needs an executor is refused there.
- 0243: TLS through
rustls driving rustls-platform-verifier, so a client
that carries its own TLS choice has to be able to take that one in.
- 0103's four behaviours, with the fourth as 0243 narrowed it: it reaches the
network only where the transport asks it to and never for an updater, a proxy
discovery or a resolver of its own; it touches no filesystem; it starts no
thread; a logging facade with no logger installed is admitted and a write to
a log is not.
- 0061's fifth ground: no field-bearing surface of its own.
Done when
The means is recorded in docs/decisions/ with the graph counted per triple
and every licence expression read, in the shape 0243 uses, the clause that
admitted it and what retires it written beside the manifest entry as 0103
requires, and #27 names the record as what its socket is written against.
0011 measures that the standard library reaches TCP and stops, with no transport
security and no HTTP, and says that the transport in #27 and every request the
core makes rest on something outside it. 0243 answered the transport-security
half. Nothing has answered the HTTP half, so #27 has a decided way to validate a
certificate and no decided way to write a request or read a response.
What is wrong
No record names what speaks HTTP:
0027 leaves the protocol version to the means and to 0010. 0103 refuses writing
the protocol here by class, in its own words: a protocol, a parser of somebody
else's format, or a cryptographic primitive is a defect nobody sees until it is
exploited. So the means is a dependency, which one is 0103's judgement against
its licence set, its four behaviours and its worth test, and the graph is
counted per triple the way 0243 counted its own. Nothing on this board has done
that, and the fake server in
tests/fake_server/parsing HTTP by hand is atest-tree choice under 0103's relaxation, not a means for
src/.What the answer has to meet
Each line is a landed record's requirement rather than a preference of mine,
and a candidate that cannot meet one is refused by that record before 0103 is
reached:
are separate; connection reuse per origin that the core controls; a cancelled
body read to a bound and then the connection closed rather than drained; and
a resolver handed a host only after 0069's comparison admitted it, which
0027 puts inside the connect bound.
client that needs an executor is refused there.
rustlsdrivingrustls-platform-verifier, so a clientthat carries its own TLS choice has to be able to take that one in.
network only where the transport asks it to and never for an updater, a proxy
discovery or a resolver of its own; it touches no filesystem; it starts no
thread; a logging facade with no logger installed is admitted and a write to
a log is not.
Done when
The means is recorded in
docs/decisions/with the graph counted per tripleand every licence expression read, in the shape 0243 uses, the clause that
admitted it and what retires it written beside the manifest entry as 0103
requires, and #27 names the record as what its socket is written against.