mirror of
https://github.com/c-cube/tiny_httpd.git
synced 2025-12-06 03:05:29 -05:00
deploy: 80ed51576b
This commit is contained in:
parent
417606f016
commit
8d8627e1e8
13 changed files with 29 additions and 13 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Tiny_httpd_buf (tiny_httpd.Tiny_httpd_buf)</title><link rel="stylesheet" href="../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">tiny_httpd</a> » Tiny_httpd_buf</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_buf</span></code></h1><p>Simple buffer.</p><p>These buffers are used to avoid allocating too many byte arrays when processing streams and parsing requests.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-size"><a href="#val-size" class="anchor"></a><code><span><span class="keyword">val</span> size : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span><span class="keyword">val</span> clear : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>?size:int <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-contents"><a href="#val-contents" class="anchor"></a><code><span><span class="keyword">val</span> contents : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bytes_slice"><a href="#val-bytes_slice" class="anchor"></a><code><span><span class="keyword">val</span> bytes_slice : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bytes</span></code></div><div class="spec-doc"><p>Access underlying slice of bytes.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-contents_and_clear"><a href="#val-contents_and_clear" class="anchor"></a><code><span><span class="keyword">val</span> contents_and_clear : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Get contents of the buffer and clear it.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_bytes"><a href="#val-add_bytes" class="anchor"></a><code><span><span class="keyword">val</span> add_bytes : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Append given bytes slice to the buffer.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div></div></body></html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Tiny_httpd_buf (tiny_httpd.Tiny_httpd_buf)</title><link rel="stylesheet" href="../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">tiny_httpd</a> » Tiny_httpd_buf</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_buf</span></code></h1><p>Simple buffer.</p><p>These buffers are used to avoid allocating too many byte arrays when processing streams and parsing requests.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-size"><a href="#val-size" class="anchor"></a><code><span><span class="keyword">val</span> size : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span><span class="keyword">val</span> clear : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>?size:int <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-contents"><a href="#val-contents" class="anchor"></a><code><span><span class="keyword">val</span> contents : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bytes_slice"><a href="#val-bytes_slice" class="anchor"></a><code><span><span class="keyword">val</span> bytes_slice : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bytes</span></code></div><div class="spec-doc"><p>Access underlying slice of bytes.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-contents_and_clear"><a href="#val-contents_and_clear" class="anchor"></a><code><span><span class="keyword">val</span> contents_and_clear : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Get contents of the buffer and clear it.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_bytes"><a href="#val-add_bytes" class="anchor"></a><code><span><span class="keyword">val</span> add_bytes : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Append given bytes slice to the buffer.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_string"><a href="#val-add_string" class="anchor"></a><code><span><span class="keyword">val</span> add_string : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Add string.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_buffer"><a href="#val-add_buffer" class="anchor"></a><code><span><span class="keyword">val</span> add_buffer : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span class="xref-unresolved">Stdlib</span>.Buffer.t <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Append bytes from buffer.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div></div></body></html>
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Out (tiny_httpd.Tiny_httpd_html_.Out)</title><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">tiny_httpd</a> » <a href="../index.html">Tiny_httpd_html_</a> » Out</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_html_.Out</span></code></h1><p>Output for HTML combinators.</p><p>This output type is used to produce a string reasonably efficiently from a tree of combinators.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>unit <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-clear"><a href="#val-clear" class="anchor"></a><code><span><span class="keyword">val</span> clear : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_char"><a href="#val-add_char" class="anchor"></a><code><span><span class="keyword">val</span> add_char : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_string"><a href="#val-add_string" class="anchor"></a><code><span><span class="keyword">val</span> add_string : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_format_nl"><a href="#val-add_format_nl" class="anchor"></a><code><span><span class="keyword">val</span> add_format_nl : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_no_format_nl"><a href="#val-with_no_format_nl" class="anchor"></a><code><span><span class="keyword">val</span> with_no_format_nl : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span>(<span>unit <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div></div></div></body></html>
|
||||
0
dev/tiny_httpd/Tiny_httpd_io/.dummy
Normal file
0
dev/tiny_httpd/Tiny_httpd_io/.dummy
Normal file
2
dev/tiny_httpd/Tiny_httpd_io/In_channel/index.html
Normal file
2
dev/tiny_httpd/Tiny_httpd_io/In_channel/index.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>In_channel (tiny_httpd.Tiny_httpd_io.In_channel)</title><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">tiny_httpd</a> » <a href="../index.html">Tiny_httpd_io</a> » In_channel</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_io.In_channel</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span><span>{</span></code><ol><li id="type-t.input" class="def record field anchored"><a href="#type-t.input" class="anchor"></a><code><span>input : <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Read into the slice. Returns <code>0</code> only if the channel is closed.</p><span class="comment-delim">*)</span></div></li><li id="type-t.close" class="def record field anchored"><a href="#type-t.close" class="anchor"></a><code><span>close : <span>unit <span class="arrow">-></span></span> unit;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_in_channel"><a href="#val-of_in_channel" class="anchor"></a><code><span><span class="keyword">val</span> of_in_channel : <span>?close_noerr:bool <span class="arrow">-></span></span> <span><span class="xref-unresolved">Stdlib</span>.in_channel <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_unix_fd"><a href="#val-of_unix_fd" class="anchor"></a><code><span><span class="keyword">val</span> of_unix_fd : <span>?close_noerr:bool <span class="arrow">-></span></span> <span><span class="xref-unresolved">Unix</span>.file_descr <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-input"><a href="#val-input" class="anchor"></a><code><span><span class="keyword">val</span> input : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-close"><a href="#val-close" class="anchor"></a><code><span><span class="keyword">val</span> close : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div></div></body></html>
|
||||
2
dev/tiny_httpd/Tiny_httpd_io/Out_channel/index.html
Normal file
2
dev/tiny_httpd/Tiny_httpd_io/Out_channel/index.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Out_channel (tiny_httpd.Tiny_httpd_io.Out_channel)</title><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">tiny_httpd</a> » <a href="../index.html">Tiny_httpd_io</a> » Out_channel</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_io.Out_channel</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span><span>{</span></code><ol><li id="type-t.output" class="def record field anchored"><a href="#type-t.output" class="anchor"></a><code><span>output : <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Output slice</p><span class="comment-delim">*)</span></div></li><li id="type-t.flush" class="def record field anchored"><a href="#type-t.flush" class="anchor"></a><code><span>flush : <span>unit <span class="arrow">-></span></span> unit;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Flush underlying buffer</p><span class="comment-delim">*)</span></div></li><li id="type-t.close" class="def record field anchored"><a href="#type-t.close" class="anchor"></a><code><span>close : <span>unit <span class="arrow">-></span></span> unit;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_out_channel"><a href="#val-of_out_channel" class="anchor"></a><code><span><span class="keyword">val</span> of_out_channel : <span>?close_noerr:bool <span class="arrow">-></span></span> <span><span class="xref-unresolved">Stdlib</span>.out_channel <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output"><a href="#val-output" class="anchor"></a><code><span><span class="keyword">val</span> output : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output_string"><a href="#val-output_string" class="anchor"></a><code><span><span class="keyword">val</span> output_string : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-close"><a href="#val-close" class="anchor"></a><code><span><span class="keyword">val</span> close : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-flush"><a href="#val-flush" class="anchor"></a><code><span><span class="keyword">val</span> flush : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output_buf"><a href="#val-output_buf" class="anchor"></a><code><span><span class="keyword">val</span> output_buf : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="../../Tiny_httpd_buf/index.html#type-t">Buf.t</a> <span class="arrow">-></span></span> unit</span></code></div></div></div></body></html>
|
||||
2
dev/tiny_httpd/Tiny_httpd_io/TCP_server/index.html
Normal file
2
dev/tiny_httpd/Tiny_httpd_io/TCP_server/index.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>TCP_server (tiny_httpd.Tiny_httpd_io.TCP_server)</title><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">tiny_httpd</a> » <a href="../index.html">Tiny_httpd_io</a> » TCP_server</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_io.TCP_server</span></code></h1><p>A TCP server abstraction</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-conn_handler"><a href="#type-conn_handler" class="anchor"></a><code><span><span class="keyword">type</span> conn_handler</span><span> = </span><span>{</span></code><ol><li id="type-conn_handler.handle" class="def record field anchored"><a href="#type-conn_handler.handle" class="anchor"></a><code><span>handle : <span><a href="../In_channel/index.html#type-t">In_channel.t</a> <span class="arrow">-></span></span> <span><a href="../Out_channel/index.html#type-t">Out_channel.t</a> <span class="arrow">-></span></span> unit;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Handle client connection</p><span class="comment-delim">*)</span></div></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span><span>{</span></code><ol><li id="type-t.endpoint" class="def record field anchored"><a href="#type-t.endpoint" class="anchor"></a><code><span>endpoint : <span>unit <span class="arrow">-></span></span> string * int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Endpoint we listen on. This can only be called from within <code>serve</code>.</p><span class="comment-delim">*)</span></div></li><li id="type-t.active_connections" class="def record field anchored"><a href="#type-t.active_connections" class="anchor"></a><code><span>active_connections : <span>unit <span class="arrow">-></span></span> int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Number of connections currently active</p><span class="comment-delim">*)</span></div></li><li id="type-t.running" class="def record field anchored"><a href="#type-t.running" class="anchor"></a><code><span>running : <span>unit <span class="arrow">-></span></span> bool;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Is the server currently running?</p><span class="comment-delim">*)</span></div></li><li id="type-t.stop" class="def record field anchored"><a href="#type-t.stop" class="anchor"></a><code><span>stop : <span>unit <span class="arrow">-></span></span> unit;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Ask the server to stop. This might not take effect immediately.</p><span class="comment-delim">*)</span></div></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>Running server.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-builder"><a href="#type-builder" class="anchor"></a><code><span><span class="keyword">type</span> builder</span><span> = </span><span>{</span></code><ol><li id="type-builder.serve" class="def record field anchored"><a href="#type-builder.serve" class="anchor"></a><code><span>serve : <span>after_init:<span>(<span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span>handle:<a href="#type-conn_handler">conn_handler</a> <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> unit;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Blocking call to listen for incoming connections and handle them. Uses the connection handler to handle individual client connections.</p><span class="comment-delim">*)</span></div></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>A TCP server implementation.</p></div></div></div></body></html>
|
||||
2
dev/tiny_httpd/Tiny_httpd_io/index.html
Normal file
2
dev/tiny_httpd/Tiny_httpd_io/index.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Tiny_httpd_io (tiny_httpd.Tiny_httpd_io)</title><link rel="stylesheet" href="../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">tiny_httpd</a> » Tiny_httpd_io</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_io</span></code></h1><p>IO abstraction.</p><p>We abstract IO so we can support classic unix blocking IOs with threads, and modern async IO with Eio.</p><p><b>NOTE</b>: experimental.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module anchored" id="module-Buf"><a href="#module-Buf" class="anchor"></a><code><span><span class="keyword">module</span> Buf</span><span> = <a href="../Tiny_httpd_buf/index.html">Tiny_httpd_buf</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-In_channel"><a href="#module-In_channel" class="anchor"></a><code><span><span class="keyword">module</span> <a href="In_channel/index.html">In_channel</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Out_channel"><a href="#module-Out_channel" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Out_channel/index.html">Out_channel</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-TCP_server"><a href="#module-TCP_server" class="anchor"></a><code><span><span class="keyword">module</span> <a href="TCP_server/index.html">TCP_server</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A TCP server abstraction</p></div></div></div></body></html>
|
||||
|
|
@ -11,7 +11,12 @@
|
|||
<span>?sock:<span class="xref-unresolved">Unix</span>.file_descr <span class="arrow">-></span></span>
|
||||
<span>?middlewares:<span><span>(<span>[ `Encoding <span><span>| `Stage</span> of int</span> ]</span> * <a href="Middleware/index.html#type-t">Middleware.t</a>)</span> list</span> <span class="arrow">-></span></span>
|
||||
<span>unit <span class="arrow">-></span></span>
|
||||
<a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a new webserver.</p><p>The server will not do anything until <a href="#val-run"><code>run</code></a> is called on it. Before starting the server, one can use <code>add_path_handler</code> and <a href="#val-set_top_handler"><code>set_top_handler</code></a> to specify how to handle incoming requests.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">masksigpipe</span> <p>if true, block the signal <code>Sys</code>.sigpipe which otherwise tends to kill client threads when they try to write on broken sockets. Default: <code>true</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">buf_size</span> <p>size for buffers (since 0.11)</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">new_thread</span> <p>a function used to spawn a new thread to handle a new client connection. By default it is <code>Thread</code>.create but one could use a thread pool instead.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">middlewares</span> <p>see <a href="#val-add_middleware"><code>add_middleware</code></a> for more details.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">max_connections</span> <p>maximum number of simultaneous connections.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">timeout</span> <p>connection is closed if the socket does not do read or write for the amount of second. Default: 0.0 which means no timeout. timeout is not recommended when using proxy.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">addr</span> <p>address (IPv4 or IPv6) to listen on. Default <code>"127.0.0.1"</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">port</span> <p>to listen on. Default <code>8080</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">sock</span> <p>an existing socket given to the server to listen on, e.g. by systemd on Linux (or launchd on macOS). If passed in, this socket will be used instead of the <code>addr</code> and <code>port</code>. If not passed in, those will be used. This parameter exists since 0.10.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">get_time_s</span> <p>obtain the current timestamp in seconds. This parameter exists since 0.11.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-addr"><a href="#val-addr" class="anchor"></a><code><span><span class="keyword">val</span> addr : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Address on which the server listens.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_ipv6"><a href="#val-is_ipv6" class="anchor"></a><code><span><span class="keyword">val</span> is_ipv6 : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_ipv6 server</code> returns <code>true</code> iff the address of the server is an IPv6 address.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-port"><a href="#val-port" class="anchor"></a><code><span><span class="keyword">val</span> port : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Port on which the server listens. Note that this might be different than the port initially given if the port was <code>0</code> (meaning that the OS picks a port for us).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-active_connections"><a href="#val-active_connections" class="anchor"></a><code><span><span class="keyword">val</span> active_connections : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Number of currently active connections.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_decode_request_cb"><a href="#val-add_decode_request_cb" class="anchor"></a><code><span><span class="keyword">val</span> add_decode_request_cb :
|
||||
<a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a new webserver using UNIX abstractions.</p><p>The server will not do anything until <a href="#val-run"><code>run</code></a> is called on it. Before starting the server, one can use <code>add_path_handler</code> and <a href="#val-set_top_handler"><code>set_top_handler</code></a> to specify how to handle incoming requests.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">masksigpipe</span> <p>if true, block the signal <code>Sys</code>.sigpipe which otherwise tends to kill client threads when they try to write on broken sockets. Default: <code>true</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">buf_size</span> <p>size for buffers (since 0.11)</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">new_thread</span> <p>a function used to spawn a new thread to handle a new client connection. By default it is <code>Thread</code>.create but one could use a thread pool instead.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">middlewares</span> <p>see <a href="#val-add_middleware"><code>add_middleware</code></a> for more details.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">max_connections</span> <p>maximum number of simultaneous connections.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">timeout</span> <p>connection is closed if the socket does not do read or write for the amount of second. Default: 0.0 which means no timeout. timeout is not recommended when using proxy.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">addr</span> <p>address (IPv4 or IPv6) to listen on. Default <code>"127.0.0.1"</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">port</span> <p>to listen on. Default <code>8080</code>.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">sock</span> <p>an existing socket given to the server to listen on, e.g. by systemd on Linux (or launchd on macOS). If passed in, this socket will be used instead of the <code>addr</code> and <code>port</code>. If not passed in, those will be used. This parameter exists since 0.10.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">get_time_s</span> <p>obtain the current timestamp in seconds. This parameter exists since 0.11.</p></li></ul></div></div><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-IO_BACKEND"><a href="#module-type-IO_BACKEND" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-IO_BACKEND/index.html">IO_BACKEND</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A backend that provides IO operations, network operations, etc.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create_from"><a href="#val-create_from" class="anchor"></a><code><span><span class="keyword">val</span> create_from :
|
||||
<span>?buf_size:int <span class="arrow">-></span></span>
|
||||
<span>?middlewares:<span><span>(<span>[ `Encoding <span><span>| `Stage</span> of int</span> ]</span> * <a href="Middleware/index.html#type-t">Middleware.t</a>)</span> list</span> <span class="arrow">-></span></span>
|
||||
<span>backend:<span>(<span class="keyword">module</span> <a href="module-type-IO_BACKEND/index.html">IO_BACKEND</a>)</span> <span class="arrow">-></span></span>
|
||||
<span>unit <span class="arrow">-></span></span>
|
||||
<a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a new webserver using provided backend.</p><p>The server will not do anything until <a href="#val-run"><code>run</code></a> is called on it. Before starting the server, one can use <code>add_path_handler</code> and <a href="#val-set_top_handler"><code>set_top_handler</code></a> to specify how to handle incoming requests.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">buf_size</span> <p>size for buffers (since 0.11)</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">middlewares</span> <p>see <a href="#val-add_middleware"><code>add_middleware</code></a> for more details.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-addr"><a href="#val-addr" class="anchor"></a><code><span><span class="keyword">val</span> addr : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Address on which the server listens.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_ipv6"><a href="#val-is_ipv6" class="anchor"></a><code><span><span class="keyword">val</span> is_ipv6 : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_ipv6 server</code> returns <code>true</code> iff the address of the server is an IPv6 address.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-port"><a href="#val-port" class="anchor"></a><code><span><span class="keyword">val</span> port : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Port on which the server listens. Note that this might be different than the port initially given if the port was <code>0</code> (meaning that the OS picks a port for us).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-active_connections"><a href="#val-active_connections" class="anchor"></a><code><span><span class="keyword">val</span> active_connections : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Number of currently active connections.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_decode_request_cb"><a href="#val-add_decode_request_cb" class="anchor"></a><code><span><span class="keyword">val</span> add_decode_request_cb :
|
||||
<span><a href="#type-t">t</a> <span class="arrow">-></span></span>
|
||||
<span><span>(<span><span>unit <a href="Request/index.html#type-t">Request.t</a></span> <span class="arrow">-></span></span> <span><span>(<span>unit <a href="Request/index.html#type-t">Request.t</a></span> * <span>(<span><a href="#type-byte_stream">byte_stream</a> <span class="arrow">-></span></span> <a href="#type-byte_stream">byte_stream</a>)</span>)</span> option</span>)</span> <span class="arrow">-></span></span>
|
||||
unit</span></code></div><div class="spec-doc"><p>Add a callback for every request. The callback can provide a stream transformer and a new request (with modified headers, typically). A possible use is to handle decompression by looking for a <code>Transfer-Encoding</code> header and returning a stream transformer that decompresses on the fly.</p><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-add_middleware"><code>add_middleware</code></a> instead</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_encode_response_cb"><a href="#val-add_encode_response_cb" class="anchor"></a><code><span><span class="keyword">val</span> add_encode_response_cb :
|
||||
|
|
@ -40,4 +45,4 @@
|
|||
<span><a href="#type-t">t</a> <span class="arrow">-></span></span>
|
||||
<span><span><span>(<span class="type-var">'a</span>, <span><span>string <a href="Request/index.html#type-t">Request.t</a></span> <span class="arrow">-></span></span> <span><a href="#type-server_sent_generator">server_sent_generator</a> <span class="arrow">-></span></span> unit)</span> <a href="Route/index.html#type-t">Route.t</a></span> <span class="arrow">-></span></span>
|
||||
<span><span class="type-var">'a</span> <span class="arrow">-></span></span>
|
||||
unit</span></code></div><div class="spec-doc"><p>Add a handler on an endpoint, that serves server-sent events.</p><p>The callback is given a generator that can be used to send events as it pleases. The connection is always closed by the client, and the accepted method is always <code>GET</code>. This will set the header "content-type" to "text/event-stream" automatically and reply with a 200 immediately. See <a href="#type-server_sent_generator"><code>server_sent_generator</code></a> for more details.</p><p>This handler stays on the original thread (it is synchronous).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.9</li></ul></div></div><h3 id="run-the-server"><a href="#run-the-server" class="anchor"></a>Run the server</h3><div class="odoc-spec"><div class="spec value anchored" id="val-stop"><a href="#val-stop" class="anchor"></a><code><span><span class="keyword">val</span> stop : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Ask the server to stop. This might not have an immediate effect as <a href="#val-run"><code>run</code></a> might currently be waiting on IO.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-run"><a href="#val-run" class="anchor"></a><code><span><span class="keyword">val</span> run : <span>?after_init:<span>(<span>unit <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span>(unit, exn)</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div><div class="spec-doc"><p>Run the main loop of the server, listening on a socket described at the server's creation time, using <code>new_thread</code> to start a thread for each new client.</p><p>This returns <code>Ok ()</code> if the server exits gracefully, or <code>Error e</code> if it exits with an error.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">after_init</span> <p>is called after the server starts listening. since 0.13 .</p></li></ul></div></div></div></body></html>
|
||||
unit</span></code></div><div class="spec-doc"><p>Add a handler on an endpoint, that serves server-sent events.</p><p>The callback is given a generator that can be used to send events as it pleases. The connection is always closed by the client, and the accepted method is always <code>GET</code>. This will set the header "content-type" to "text/event-stream" automatically and reply with a 200 immediately. See <a href="#type-server_sent_generator"><code>server_sent_generator</code></a> for more details.</p><p>This handler stays on the original thread (it is synchronous).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.9</li></ul></div></div><h3 id="run-the-server"><a href="#run-the-server" class="anchor"></a>Run the server</h3><div class="odoc-spec"><div class="spec value anchored" id="val-running"><a href="#val-running" class="anchor"></a><code><span><span class="keyword">val</span> running : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p>Is the server running?</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-stop"><a href="#val-stop" class="anchor"></a><code><span><span class="keyword">val</span> stop : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Ask the server to stop. This might not have an immediate effect as <a href="#val-run"><code>run</code></a> might currently be waiting on IO.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-run"><a href="#val-run" class="anchor"></a><code><span><span class="keyword">val</span> run : <span>?after_init:<span>(<span>unit <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span>(unit, exn)</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div><div class="spec-doc"><p>Run the main loop of the server, listening on a socket described at the server's creation time, using <code>new_thread</code> to start a thread for each new client.</p><p>This returns <code>Ok ()</code> if the server exits gracefully, or <code>Error e</code> if it exits with an error.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">after_init</span> <p>is called after the server starts listening. since 0.13 .</p></li></ul></div></div></div></body></html>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>IO_BACKEND (tiny_httpd.Tiny_httpd_server.IO_BACKEND)</title><link rel="stylesheet" href="../../../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../index.html">tiny_httpd</a> » <a href="../index.html">Tiny_httpd_server</a> » IO_BACKEND</nav><header class="odoc-preamble"><h1>Module type <code><span>Tiny_httpd_server.IO_BACKEND</span></code></h1><p>A backend that provides IO operations, network operations, etc.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-init_addr"><a href="#val-init_addr" class="anchor"></a><code><span><span class="keyword">val</span> init_addr : <span>unit <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-init_port"><a href="#val-init_port" class="anchor"></a><code><span><span class="keyword">val</span> init_port : <span>unit <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-spawn"><a href="#val-spawn" class="anchor"></a><code><span><span class="keyword">val</span> spawn : <span><span>(<span>unit <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>function used to spawn a new thread to handle a new client connection. By default it is <code>Thread</code>.create but one could use a thread pool instead.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_time_s"><a href="#val-get_time_s" class="anchor"></a><code><span><span class="keyword">val</span> get_time_s : <span>unit <span class="arrow">-></span></span> float</span></code></div><div class="spec-doc"><p>obtain the current timestamp in seconds.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-tcp_server"><a href="#val-tcp_server" class="anchor"></a><code><span><span class="keyword">val</span> tcp_server : <span>unit <span class="arrow">-></span></span> <a href="../../Tiny_httpd_io/TCP_server/index.html#type-builder">Tiny_httpd_io.TCP_server.builder</a></span></code></div><div class="spec-doc"><p>Server that can listen on a port and handle clients.</p></div></div></div></body></html>
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (tiny_httpd.index)</title><link rel="stylesheet" href="../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – tiny_httpd</nav><header class="odoc-preamble"><h1 id="tiny_httpd-index"><a href="#tiny_httpd-index" class="anchor"></a>tiny_httpd index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-tiny_httpd">Library tiny_httpd</a></li></ul></nav><div class="odoc-content"><h2 id="library-tiny_httpd"><a href="#library-tiny_httpd" class="anchor"></a>Library tiny_httpd</h2><p>This library exposes the following toplevel modules:</p><ul class="modules"><li><a href="Tiny_httpd/index.html"><code>Tiny_httpd</code></a> <span class="synopsis">Tiny Http Server</span></li><li><a href="Tiny_httpd_buf/index.html"><code>Tiny_httpd_buf</code></a> <span class="synopsis">Simple buffer.</span></li><li><a href="Tiny_httpd_dir/index.html"><code>Tiny_httpd_dir</code></a> <span class="synopsis">Serving static content from directories</span></li><li><a href="Tiny_httpd_html/index.html"><code>Tiny_httpd_html</code></a> <span class="synopsis">HTML combinators.</span></li><li><a href="Tiny_httpd_html_/index.html"><code>Tiny_httpd_html_</code></a> </li><li><a href="Tiny_httpd_server/index.html"><code>Tiny_httpd_server</code></a> <span class="synopsis">HTTP server.</span></li><li><a href="Tiny_httpd_stream/index.html"><code>Tiny_httpd_stream</code></a> <span class="synopsis">Byte streams.</span></li><li><a href="Tiny_httpd_util/index.html"><code>Tiny_httpd_util</code></a> </li></ul></div></body></html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (tiny_httpd.index)</title><link rel="stylesheet" href="../odoc.support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – tiny_httpd</nav><header class="odoc-preamble"><h1 id="tiny_httpd-index"><a href="#tiny_httpd-index" class="anchor"></a>tiny_httpd index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-tiny_httpd">Library tiny_httpd</a></li></ul></nav><div class="odoc-content"><h2 id="library-tiny_httpd"><a href="#library-tiny_httpd" class="anchor"></a>Library tiny_httpd</h2><p>This library exposes the following toplevel modules:</p><ul class="modules"><li><a href="Tiny_httpd/index.html"><code>Tiny_httpd</code></a> <span class="synopsis">Tiny Http Server</span></li><li><a href="Tiny_httpd_buf/index.html"><code>Tiny_httpd_buf</code></a> <span class="synopsis">Simple buffer.</span></li><li><a href="Tiny_httpd_dir/index.html"><code>Tiny_httpd_dir</code></a> <span class="synopsis">Serving static content from directories</span></li><li><a href="Tiny_httpd_html/index.html"><code>Tiny_httpd_html</code></a> <span class="synopsis">HTML combinators.</span></li><li><a href="Tiny_httpd_html_/index.html"><code>Tiny_httpd_html_</code></a> </li><li><a href="Tiny_httpd_io/index.html"><code>Tiny_httpd_io</code></a> <span class="synopsis">IO abstraction.</span></li><li><a href="Tiny_httpd_server/index.html"><code>Tiny_httpd_server</code></a> <span class="synopsis">HTTP server.</span></li><li><a href="Tiny_httpd_stream/index.html"><code>Tiny_httpd_stream</code></a> <span class="synopsis">Byte streams.</span></li><li><a href="Tiny_httpd_util/index.html"><code>Tiny_httpd_util</code></a> </li></ul></div></body></html>
|
||||
Loading…
Add table
Reference in a new issue