package tiny_httpd_camlzip
Interface to camlzip for tiny_httpd
Install
Dune Dependency
Authors
Maintainers
Sources
tiny_httpd-0.19.tbz
sha256=55b6eed7d2e41b9b2a282b344e01ca010abdba66cbbbbe5adab18303b9ff8360
sha512=98c599627b9cd98f641d389e022f9ddc025bfba838793267904b94a01b0b40b3b4cfd8f5a8d8214aaa947958e45cecbe1df751692a461f929802714d7af50e06
doc/CHANGES.html
0.19
- feat(headers):
set
will not reallocate whole list if not needed - feat(headers): use case insensitive comparison
- fix(response): do not override "content-length" in raw response
- feat pool: expose
acquire/release
for advanced uses
0.18
- feat: add ?head_middlewares to
create
- add content-type header for prometheus endpoint
- new flag ?enable_logging to disable regular logs (not debug)
- new sublibrary to deal with multipart-form-data
- feat response: add
pp_with
; havepp
hide set-cookie headers - fix percent encoding for < 0x10 chars
- Processing to fix incompatible -O and gcc flags
- fix: make check for 'Connection: Upgrade' header case-insensitive
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_with
which is a customizable printer - expose
Response.Bad_req
- use
iostream
for 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_addr
accessor - 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_handler
takes 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_io
module, 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_BACKEND
abstraction; 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.run
takes?after_init
parameter - 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
Html
module with combinators to produce html - add
Tiny_httpd_dir.VFS
to 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
?middlewares
param tocreate
- feat: add
?get_time_s
param tocreate
- feat: close connection if response's headers contains connection
- feat: store
start_time
in request - feat: implement connection timeout using socket options Default is
max_keep_alive = -1.0
which preserves the original behaviour. - feat: in server-sent-events, add a
close()
function - refactor(zip): compression is now a middleware
- perf: pass
buf_size
in many places, set defaultbuf_size
to 16kb - example: update
echo
to provide a /stats/ endpoint using a middleware
0.10
- feat: allow socket activation by passing a raw unix socket to
create
- fix:
Unix.accept
may 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_urlencoded
and renamerest
torest_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.rest
to match the rest of the path - feat: printing routes
0.6
- feat: add
Route.t
construct, 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-length
for a chunked response - fix: set
transfer-encoding
header 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_camlzip
library for handlingdeflate
compression - 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
file
to guess mime type of file - feat: allow handlers to take streams
- feat(bin): disable uploading by default
- feat: add
Tiny_httpd_util.parse_query
for 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:
%X
for percent_encode; usepercent_decode
inparse_query
0.2
- feat(bin): count number of hidden files
- feat(bin): use
details
for 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