Stéphane Lavergne
a7516689b1
Stop listening after accept loop
2023-08-08 14:30:39 -04:00
Simon Cruanes
1ca1f3dff9
fix: wait for threads to terminate when shutting down server
2023-08-08 14:30:39 -04:00
Simon Cruanes
1e50abb44f
Merge branch 'master' into client-ip
2023-08-08 13:03:40 -04:00
Simon Cruanes
5c1530f816
github CI
2023-08-08 12:57:12 -04:00
Simon Cruanes
25eb8b765a
rename IO.{In,Out}_channel to avoid confusion
...
these are not the standard in/out_channels so we should just use
different names.
2023-08-08 12:57:12 -04:00
Simon Cruanes
3802aad11f
remove eio stuff.
...
it doesn't really bring anything to the table for now. Let's wait until
it becomes actually useful.
2023-08-08 12:39:07 -04:00
Simon Cruanes
51b5b140a9
disable warning 48
2023-08-08 12:38:59 -04:00
Simon Cruanes
a3f5dde2f1
format
2023-08-08 12:37:19 -04:00
Stéphane Lavergne
1b7939c17a
Pass code to response makers
...
Error codes still override it.
2023-08-08 12:35:42 -04:00
Stéphane Lavergne
53182375c0
Preserve client address down to Request.t
...
Note that the argument is optional because of the Internal_ use case.
2023-08-07 16:52:32 -04:00
Simon Cruanes
b3b99af7ae
Merge pull request #68 from c-cube/wip-writer
...
introduce writer streams, use them in responses
2023-08-07 10:08:06 -04:00
Simon Cruanes
6070b36955
perf: use TCP_NODELAY for client sockets
...
(work with @vphantom)
2023-08-04 09:43:03 -04:00
Simon Cruanes
1060158192
do not flush after headers
2023-07-18 15:48:03 -04:00
Simon Cruanes
e3d8cf9fdd
server: use available buffer when writing body with chunk encoding
...
there's already a buffer nearby, we can use it to write streams/writer
bodies to the output channel
2023-07-18 15:40:56 -04:00
Simon Cruanes
098bf10466
add ?buf param to IO.Out_channel.chunk_encoding
...
If we can write individual chars to a channel, buffering becomes very
important (esp. considering that we might directly stream a HTML
document, tag by tag, into a channel). Thus it's a better default to
provide chunk encoding with a buffer.
2023-07-18 15:38:11 -04:00
Simon Cruanes
db40e291ab
buf: add add_char
2023-07-18 15:37:53 -04:00
Simon Cruanes
3280c9422f
fix: removed a \n by mistake
2023-07-18 14:36:11 -04:00
Simon Cruanes
3332fa906b
add Tiny_httpd_html.to_writer
2023-07-18 14:27:48 -04:00
Simon Cruanes
4a78eeb69c
html: ability to write a html document to an IO.Out_channel.t
2023-07-18 14:14:22 -04:00
Simon Cruanes
41be8908d3
feat: add IO.Out_channel.output_char function
2023-07-18 14:14:05 -04:00
Simon Cruanes
29de702c55
add IO.Out_channel.of_buffer
2023-07-18 13:57:12 -04:00
Simon Cruanes
355cc4d004
add example for Writer.t response body
2023-07-18 12:51:45 -04:00
Simon Cruanes
6137c20801
doc
2023-07-12 20:20:14 -04:00
Simon Cruanes
7b094b55ad
many fixes
2023-07-11 11:31:06 -04:00
Simon Cruanes
de23d9b2a3
wip: add IO.Writer.t, a push based stream
...
This is more convenient than our existing streams when it comes to
writing a body. The user can just get an output channel and write to it,
flush it, etc. as they please. This should also simplify compression…
once it works.
2023-07-11 10:57:08 -04:00
Simon Cruanes
832c4bd4df
more docs
2023-07-11 10:01:39 -04:00
Simon Cruanes
ec2f2f6f2e
add Server.run_exn
2023-07-11 10:01:33 -04:00
Simon Cruanes
ecc9f07748
doc
2023-07-11 09:52:55 -04:00
Simon Cruanes
c5060711ca
try to fix CI
2023-07-05 22:02:25 -04:00
Simon Cruanes
b927f98490
Merge pull request #64 from c-cube/wip-eio
...
support running on Eio
2023-07-05 21:53:07 -04:00
Simon Cruanes
bc4bce8083
doc
2023-06-26 16:05:48 -04:00
Simon Cruanes
9a587918fb
doc
2023-06-26 16:04:13 -04:00
Simon Cruanes
e1f0c58065
echo examples: add alice endpoint; use eio_posix
2023-06-23 17:58:11 -04:00
Simon Cruanes
6c8c24ea40
chore: opam dep
2023-06-23 17:58:11 -04:00
Simon Cruanes
38789de89c
require OCaml 4.05
2023-06-23 17:58:11 -04:00
Simon Cruanes
0adebc304b
fix issue for 4.04
2023-06-23 17:58:11 -04:00
Simon Cruanes
4138b1885a
detail in makefile
2023-06-23 17:58:11 -04:00
Simon Cruanes
b9faebffe4
use a resource pool to recycle buffers
2023-06-23 17:58:11 -04:00
Simon Cruanes
5ba1ff0de4
add Tiny_httpd_pool
2023-06-23 17:58:11 -04:00
Simon Cruanes
3f3d3e3464
add shims for Atomic on OCaml < 4.12
2023-06-23 17:58:11 -04:00
Simon Cruanes
911db76864
fix CI
2023-06-21 01:07:32 -04:00
Simon Cruanes
f845f1265b
compat: use Eio_unix.Stdenv.base
2023-06-21 00:23:35 -04:00
Simon Cruanes
6c499584b8
cleanup eio
2023-06-21 00:23:35 -04:00
Simon Cruanes
d2b89eee50
echo_eio: make quit into a button, to use POST
2023-06-21 00:23:34 -04:00
Simon Cruanes
55ef988aa4
details in example
2023-06-21 00:23:34 -04:00
Simon Cruanes
072a6041be
example eio: re-enable camlzip
2023-06-21 00:23:11 -04:00
Simon Cruanes
5e0a634c10
tiny_httpd_eio: do not use Eio's clock for our internals
2023-06-21 00:23:11 -04:00
Simon Cruanes
79cbcca4c1
cleanup: remove unused function in Tiny_httpd_server.IO_BACKEND
2023-06-21 00:23:11 -04:00
Simon Cruanes
d6402faf94
example: detail
2023-06-21 00:23:10 -04:00
Simon Cruanes
8620fe688d
eio: reimplement some buffering
2023-06-21 00:23:10 -04:00