6.1 KiB
0.17
-
add optional middlewares to tiny_httpd_ws
-
add
Head_middleware.trivial -
add
Head_middleware.t; accept it for SSE/websocket -
add
Request.pp_withwhich is a customizable printer -
expose
Response.Bad_req -
use
iostreamfor IOs -
add a
hmap-typed field to requests, to carry request specific data across middlewares -
http_of_dir: ability to setup socket timeout
-
add
tiny_httpd.ws, a websocket library -
add
Response_code.is_success -
fix: No setting of sigprocmask on Windows
-
fix: give the correct code+error if protocol upgrade fails
-
remove potentially security-leaking debug line
-
fix: avoid collisions in
Mime_private module -
fix middlewares: merge-sort per-request middleares and global ones
-
fix tiny_httpd dir: handle html files
-
perf: optim in read_line
-
perf: remove some uses of scanf in parsing
-
require iostream-camlzip >= 0.2.1
-
add optional dependency on
logs -
logs is a testdep for tiny_httpd_camlzip
0.16
- feat: add
Request.client_addraccessor - feat: add
tiny_httpd.prometheus, a simple sub-library to expose prometheus metrics over HTTP. - feat: add optional dependency on
logs
0.15
- fix: do not block in
accept, enabling more graceful shutdown - improve help message for tiny-httpd-vfs-pack
- security: zero out buffers from pool before reusing them
0.14
-
breaking:
set_top_handlertakes a stream request, for more generality -
Don't let client handling threads handle SIGINT/SIGHUP
-
improve termination behavior (wait for threads to terminate when shutting down server)
-
Preserve client address down to Request.t
-
add
Tiny_httpd_iomodule, abstraction over IOs (output/input) as better IO channels than the stdlib's -
add
Tiny_httpd_html.to_writer -
add
IO.Writer.t, a push based stream. -
add
Server.run_exn -
add
Tiny_httpd_pool -
server: add
IO_BACKENDabstraction; implement a unix version of it -
perf: use TCP_NODELAY for client sockets
-
perf: use a resource pool to recycle buffers, improves memory consumption and GC pressure
0.13
-
feat:
Server.runtakes?after_initparameter -
remove dep on ounit2 and qtest
-
expose
Response.make_void -
Add OPTIONS method
-
use ocamlformat on the code
-
fix: SSE requires no body
-
fix: get addr/port from the current socket
-
fix: missing closing crlf in chunked streams
-
fix: module Html was not exposed
-
fix: close stream after Response.output
-
fix(tiny-httpd-vfs-pack): allow redirections when fetching resources
0.12
- add dep on
seq - add a
Htmlmodule with combinators to produce html - add
Tiny_httpd_dir.VFSto emulate file systems - add a small program,
tiny-httpd-vfs-pack, to pack directories and files (local or behind a URL) into a OCaml module usingVFS - show small example of socket activation
0.11
-
breaking: remove deprecated path handlers based on scanf
-
breaking: more getter/setters for request/response, change signatures, make request/response private aliases
-
fix: release semaphore in case of exception in accept
-
feat: add a notion of Middleware
-
feat: add
?middlewaresparam tocreate -
feat: add
?get_time_sparam tocreate -
feat: close connection if response's headers contains connection
-
feat: store
start_timein request -
feat: implement connection timeout using socket options Default is
max_keep_alive = -1.0which preserves the original behaviour. -
feat: in server-sent-events, add a
close()function -
refactor(zip): compression is now a middleware
-
perf: pass
buf_sizein many places, set defaultbuf_sizeto 16kb -
example: update
echoto provide a /stats/ endpoint using a middleware
0.10
- feat: allow socket activation by passing a raw unix socket to
create - fix:
Unix.acceptmay raise an exception (typicall Unix.EINTR, even with sigpipe blocked ?), prevent the server from stopping
0.9
- support handlers that stream server-sent events to client
0.8
-
bump to ocaml 4.04
-
Validate header key's character set (#15)
-
perf: simpler parsing of headers
-
fix: workaround for css/js in
http_of_dir(#16) -
fix(urlencode): encode non ascii chars
0.7
- feat: add
rest_of_path_urlencodedand renameresttorest_of_path - feat:
http_of_dir: redirect to index.html if present - fix:
http_of_dir: do not url-encode '/' in paths - feat: add
Route.restto match the rest of the path - feat: printing routes
0.6
-
feat: add
Route.tconstruct, deprecate scanf, add more structured path -
feat: use chunked encoding for large string responses, in addition to streams
-
refactor(echo): simplify code, use gzip aggressively
-
accept http1.0
-
fix: do not output a
content-lengthfor a chunked response -
fix: set
transfer-encodingheader when returning a chunked stream -
fix(zip): handle case where camlzip consumes 0 bytes
-
feat(zip): also compress string responses if they're big
-
add more debug msg
0.5
- new
tiny_httpd_camlziplibrary for handlingdeflatecompression - feat: expose
Headers.empty - fix: use the non-query path for routing
- feat(util): add some query related utils
0.4
- easy accessor to the query parameters in path
- fix: header field names are case insensitive
- doc: add note on jemalloc in the readme
- log error when closing client socket
0.3
-
feat(http_of_dir): use
fileto guess mime type of file -
feat: allow handlers to take streams
-
feat(bin): disable uploading by default
-
feat: add
Tiny_httpd_util.parse_queryfor query decoding -
feat(bin): set charset to utf8
-
feat: autodetect ipv6 address
-
feat: support ipv6 address
-
fix: missing crlf between chunks
-
fix: read_all must return rather than blocking when done
-
fix: proper amortized O(1) push in Buf.push
-
fix:
%Xfor percent_encode; usepercent_decodeinparse_query
0.2
- feat(bin): count number of hidden files
- feat(bin): use
detailsfor hiding hidden files by default - fix: improved percent encoding of paths
- feat: add percent encoding/decoding
- feat(bin): better human-size display
- feat: in http_of_dir, sort entries and display their size
- fix(http_of_dir): handle bad symlinks
- improve docs and opam, tidy up for 0.1