Show HN: Spindle – a full-featured, type-safe web framework for OCaml 5

github.com

40 points by zaiev 2 days ago

Spindle is a multicore-by-design, eio-native web framework for modern OCaml.

Its central idea is to provide an expressive, type-driven API and derive the rest: codecs, request validation, OpenAPI spec and frontend schemas (Zod and Melange). This keeps contracts in sync between server and client without maintaining separate definitions.

The framework includes an RFC-strict HTTP server, composable dependencies, WebSockets, SSE and high-level primitives for building MCP servers. It also provides production-ready essentials like distributed tracing, OT-compatible metrics, logging and other features you would expect. Speed was never the goal but the benchmarks show it running x2 faster than NestJS and x5 faster than FastAPI on a single core.

Give it a try.

Documentation: https://hyphatech.github.io/spindle/

avsm an hour ago

Nice work! Just looking through the Eio code, you may want to use the capability restrictions more. For example, in the static file serving code, you can use `Eio.Path.open_subtree` which will use Linux fd sandboxing to prevent accidental symlink escapes or other ways to leave that subtree: https://ocaml-multicore.github.io/eio/eio/Eio/Path/index.htm...

B4uler5 2 hours ago

Will keep an eye on this project, love me some Ocaml! Do you have an example of it deployed and in use?

Don’t like the “fresh off the AI block” feeling of the website but could be a bit more confident if I could see it used in the actual wild!

andsoitis 3 hours ago

Cool to see some Lisp in this OCaml project:

Add to your bin/dune:

    (executable
      (name main)
      (libraries spindle eio_main)
      (preprocess (pps ppx_wiretype)))**
sroerick 2 hours ago

Very cool! Congrats. Looking forward to trying