package vifu
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
A simple web framework for OCaml 5
Install
dune-project
Dependency
Authors
Maintainers
Sources
vif-0.0.1.beta4.tbz
sha256=0327abf4e7434e5de402661cc8c29c0539501269401670fed773b0dfc14e26aa
sha512=1ff5dddecf25b41986ea629bda336a990800db8410498682bf96af2b1afab74ae57172ee8d41087f131c9ceeb3255c96351668664e36c6815a249157afd05a5d
doc/CHANGES.html
v0.0.1~beta4 (2026-07-31)
- Handle
Hostfields and be able to dispatch requests with ourVif.UriDSL (spotted by @theAlexes, fixed by @dinosaure, !63, #35) - Update to
caqti.3.0.0(@dinosaure, !64) - Add statistics (@hannesm, @dinosaure, @reynir, !69)
- Fix & improve documentation (@hannesm, @mneumann, #37, !68)
- Use
mirage-crytpo-rng.unixinstead ofmirage-crypto-rng-miou-unix(@dinosaure, @hannesm, !71) - Use
waitportinstead ofwaitfile(@dinosaure, !72) - Export
Vif.Request.tagsto get tags from a request (@reynir, !66)
v0.0.1~beta3 (2026-05-06)
- Delete
mirage-crypto-rng-miou-unixdependency forvif.core(@dinosaure, 3fb86c5) - Improve performances, when we handle requests without body, we executed them directly instead of transferring the handler into a new domain (@dinosaure, #25, !51)
- Catch exceptions raised by
jsont(@dinosaure, !52) - Use
jwsinstead ofjwto(@dinosaure, !53) - Handle TLS flow with
vifu(@dinosaure, !54) - Expose
Vifu.Uri.{execp,extract}(@swrup, #26) - Use
Flux.Source.with_buffered_formatter(instead ofwith_formatter) (@reynir, !55) - Fix the compilation with
caqti.2.3.0(@dinosaure, !57) - Get ride of
rresult(@reynir, !58) - Depends on
flux.0.0.1~beta5(@reynir, !59) - Be able to stop a Vif server (as we do for
httpcats) (@theAlexes, @dinosaure, #29) - Be able to specify a UNIX domain socket as our listener for our webserver (@theAlexes, @dinosaure, @reynir, #30, #31)
- Use
httpcats.0.3.0and shutdown our connection at the end (@dinosaure, !60) - Add
OPTIONSmethod for our routes (@voodoos, #33) - Revert !60 and fix unexpected closed connection (see #32) and when we would like to transmit big file (!61, spotted by @voodoos, @dinosaure, @theAlexes)
- Don't emit
application/octet-streamfor unrecognized files (spotted by @n-osborne, @dinosaure, #27, #28)
v0.0.1~beta2 (2026-02-23)
- Add
Vif.Queries.all(@reynir, !5) - Improve examples and
README.md(@dinosaure, @reynir, !7, !9) - Rename
Vif.Uri.pathtoVif.Uri.path(@dinosaure, @reynir, !8) - Fix errors when we parse
multipart/form-data(@dinosaure, spotted by @yomimono, !14, !22) - Catch exceptions from URI converters (@reynir, @dinosaure, !12)
- Add
?etagargument for files (@reynir, !16) - Be able to have a regular expression per HTTP methods (@reynir, !18)
- Add
Vif.Uri.execpandVif.Uri.extract(@reynir, !20) - Exclude
?fromVif.Uri.string `Path(@reynir, !23) - Add
Vif.Response.with_text(@dinosaure, !24, !37) - Fix the support of MacOS (@vvvvv, @dinosaure, spotted by @voodoos, !25)
- Introduce
vifu, a unikernel compatible version ofvif(@dinosaure, !28) - Fix
Vif.Response.with_file(@dinosaure, !29) - Fix a double-close on
Vif.Response.with_jsonand how the function is exposed (@dinosaure, !30, !37) - Let the user to define a log reporter (@voodoos, @dinosaure, !32)
- Fix the support of h2 protocol and which field we should generate (@dinosaure, !33)
- Use
flux(@dinosaure, !34) - Fix memory leak with
logs(@dinosaure, !38, !39) - Update to
tyre.1.0.0(@dinosaure, @EmileTrotignon, !40) - Remove the usage of ppx in our tests (@dinosaure, !42)
- Verify the TLS configuration given (and its ALPN protocols) (@dinosaure, spotted by @voodoos, !41)
- Provide
Vif.Response.with_stream(@dinosaure, !43) - Remove deprecated
jsonmdependency (@dinosaure, !45) - Give the possibility for the user to initialize RNG (@dinosaure, requested by @voodoos, !46)
- Remove pin-depends (@hannesm, @dinosaure, !48)
v0.0.1~beta1 (2025-08-14)
- First release of Vif
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page