Simon Cruanes
a07936dac4
eio backend, second attempt ( #95 )
...
format / format (push) Waiting to run
build / build (4.13.x, ubuntu-latest) (push) Waiting to run
build / build (4.14.x, ubuntu-latest) (push) Waiting to run
build / build (5.03.x, ubuntu-latest) (push) Waiting to run
feat: `tiny_httpd_eio` library
provides a tiny_httpd server that relies on Eio for non-blocking
sockets and for concurrency using eio fibers.
2026-02-15 16:36:32 -05:00
Simon Cruanes
ba19880d75
hardening bugfixes
...
github pages / deploy (push) Has been cancelled
build / build (4.13.x, ubuntu-latest) (push) Has been cancelled
build / build (4.14.x, ubuntu-latest) (push) Has been cancelled
build / build (5.03.x, ubuntu-latest) (push) Has been cancelled
* fix: use realpath to validate filesystem paths against traversal
- add string_prefix helper to check path containment
- compute root_canonical once per add_vfs_ call
- use realpath only for filesystem (on_fs=true), keeping simple
contains_dot_dot check for VFS
- paths are already URL-decoded by Route.rest_of_path_urlencoded
* fix: add header size limits to prevent memory exhaustion
add optional limits to Headers.parse_:
- max_headers: 100 (default)
- max_header_size: 16KiB per header (default)
- max_total_size: 256KiB total (default)
returns 431 status code when limits exceeded per RFC 6585.
2026-02-10 19:57:21 -05:00
Simon Cruanes
f3461cfd21
detail in example
2025-03-21 08:37:16 -04:00
Simon Cruanes
a86eac85bf
add a HEAD endpoint to echo
2024-12-25 10:59:32 -05:00
Simon Cruanes
731dd7de51
add a form to echo.ml for manual testing
2024-12-03 10:13:33 -05:00
Simon Cruanes
d8ff243e8d
feat ws: pass the whole request to the handler
2024-04-02 14:35:57 -04:00
Simon Cruanes
78ded146ac
add .html files for SSE and websocket examples
2024-03-12 10:39:50 -04:00
Simon Cruanes
ec3dec6b72
wip: bugfixes
2024-02-26 16:28:31 -05:00
Simon Cruanes
1a45961443
chore: turn tiny_httpd_ws into tiny_httpd.ws, a sub-lib
...
now that there's no additional dep it's not a problem!
2024-02-05 10:36:55 -05:00
Simon Cruanes
29dc16114e
detail in example
2024-02-05 01:07:34 -05:00
Simon Cruanes
a405fb046d
expose client address to websocket
2024-02-05 01:07:34 -05:00
Simon Cruanes
7fe66a21ec
example of echo server over websockets
2024-02-05 01:06:37 -05:00
Simon Cruanes
86f1b9025d
add optional dependency on logs
2024-01-23 23:32:20 -05:00
Simon Cruanes
b7eb8f56a0
fix example
2023-08-08 15:21:22 -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
355cc4d004
add example for Writer.t response body
2023-07-18 12:51:45 -04:00
Simon Cruanes
7b094b55ad
many fixes
2023-07-11 11:31:06 -04:00
Simon Cruanes
e1f0c58065
echo examples: add alice endpoint; use eio_posix
2023-06-23 17:58:11 -04:00
Simon Cruanes
f845f1265b
compat: use Eio_unix.Stdenv.base
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
d6402faf94
example: detail
2023-06-21 00:23:10 -04:00
Simon Cruanes
bfe5e9c358
copy example echo for eio backend
2023-06-21 00:23:09 -04:00
Simon Cruanes
04f17262b6
example: add super stupid http auth endpoints to echo.ml
...
the endpoint /protected requires user:foobar login to see the content.
2023-06-20 23:04:44 -04:00
Simon Cruanes
0908d71e19
ocamlformat
2023-05-23 17:40:18 -04:00
Simon Cruanes
dbb384cd82
fix: do not try to download a URL from vfs-pack in test
2022-03-30 16:31:18 -04:00
Simon Cruanes
d4c2482699
examples: fix tests for -p tiny_httpd_camlzip
2022-03-30 16:23:40 -04:00
Simon Cruanes
a4438dbdf6
fix a test for 4.04
2022-03-30 16:23:40 -04:00
Simon Cruanes
6706589c62
increase test coverage to include vfs and <pre>
2022-03-17 22:35:13 -04:00
Simon Cruanes
533a42a661
details
2022-03-16 20:40:38 -04:00
Simon Cruanes
a7f0039903
fix CI
2022-03-04 13:51:07 -05:00
Simon Cruanes
d36011bce6
fake vfs module on non linux
2022-03-04 00:20:49 -05:00
Simon Cruanes
759995b9d5
add a VFS in examples/echo.ml
2022-03-03 22:14:44 -05:00
craff
51be9c0c8f
real fix in echo!
2021-12-15 20:19:42 -10:00
craff
ffc18a5617
fix in echo
2021-12-15 20:13:32 -10:00
craff
672e33c827
detailed time in echo example
2021-12-15 18:18:52 -10:00
craff
4770e3e729
Timing start of request
2021-12-15 18:14:17 -10:00
Simon Cruanes
7685505f28
example: update echo to provide a /stats/ endpoint using a middleware
2021-12-15 16:27:28 -05:00
Simon Cruanes
ba31534551
feat: pass buf_size in many places, set default buf_size to 16kb
2021-12-12 17:06:46 -05:00
craff
85f64caf87
kill %1 in test is not robust enough
2021-12-11 23:27:35 -10:00
Simon Cruanes
c8982c8836
move echo from src/examples/ to examples/
2021-12-11 10:02:24 -05:00
Simon Cruanes
b292664b2e
test: expect test for server-send events (linux only)
2021-07-17 22:10:15 -04:00
Simon Cruanes
62d583553e
allow extra headers in server-sent events
2021-07-17 22:09:45 -04:00
Simon Cruanes
ce552cafdd
add some example programs to exercize server-sent events
2021-07-17 22:09:45 -04:00