{"slug": "eio", "name": "Eio", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 4, "warners": 0, "score": 2.687, "rising": -0.98, "first": "2025-11-04", "latest": "2026-05-15", "why": "migrating my libraries from Lwt to Eio to take advantage of OCaml 5\u2019s direct-style concurrency", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 0, "compare": 1, "warn": 0}, "spark": [1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "migrating my libraries from Lwt to Eio to take advantage of OCaml 5\u2019s direct-style concurrency", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/ocaml-multicore/eio", "official_url": "https://github.com/ocaml-multicore/eio", "pricing": "", "aliases": ["Eio"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 770380768, "item_id": 48148798, "url": "https://news.ycombinator.com/item?id=48148798", "by": "avsm", "date": "2026-05-15", "stance": "recommend", "quote": "much easier now with OCaml effects to build custom fast serialisers", "excerpt": "Nice work! Did you ever open any open source any of it? Looking at your OCaml wishlist from back in 2017, some stuff has improved and some is on its way: - Support for read-only BigArrays (or sections) : we're starting to switch to just using bytes/string in OCaml 5+ now, since the larger allocations go into malloc'ed pools and do not relocate, so they can be used as part of an FFI (without the Bigarray C value overh", "context": "", "use_case": "", "switched_from": "", "story": "O(x)Caml in Space"}, {"id": 750759024, "item_id": 46922439, "url": "https://news.ycombinator.com/item?id=46922439", "by": "avsm", "date": "2026-02-07", "stance": "recommend", "quote": "I use Eio these days to do direct-style IO", "excerpt": "(original author of that article here) This is a blast from the past! And indeed, I use Eio these days to do direct-style IO; you can see an example of a HTTP/1.1 parser done in that style, and there's nary a monad in sight! https://tangled.org/anil.recoil.org/ocaml-requests/blob/main/lib/h1/http_read.ml OCaml's effects are similar to thethe delimcc hack used in the article, except that it's nicely integrated into OC", "context": "original author of the Lwt/delimcc article", "use_case": "direct-style IO in OCaml", "switched_from": "Lwt", "story": "Delimited Continuations vs. Lwt for Threads"}, {"id": 746263249, "item_id": 46641453, "url": "https://news.ycombinator.com/item?id=46641453", "by": "oug-t", "date": "2026-01-15", "stance": "recommend", "quote": "migrating my libraries from Lwt to Eio to take advantage of OCaml 5\u2019s direct-style concurrency", "excerpt": "Hi everyone, Like many of you, I\u2019ve been looking into migrating my libraries from Lwt to Eio to take advantage of OCaml 5\u2019s direct-style concurrency. While the manual migration guides are excellent, I found myself making the same mechanical changes over and over\u2014flattening binds, unwrapping promises, and rewriting maps. So, I built lwt-to-eio, a tool that automates the boring parts of this transition. Repo: https://g", "context": "", "use_case": "", "switched_from": "Lwt", "story": "Show HN: Lwt-to-Eio \u2013 Automated Migration from Lwt to OCaml 5 Direct Style"}, {"id": 733013904, "item_id": 45813369, "url": "https://news.ycombinator.com/item?id=45813369", "by": "yawaramin", "date": "2025-11-04", "stance": "recommend", "quote": "Check out Eio.", "excerpt": "We have exactly that in OCaml. Check out Eio.", "context": "", "use_case": "Async I/O for OCaml", "switched_from": "", "story": "Pain Points of OCaml"}]}], "caveats": [], "who": [{"by": "avsm", "context": "original author of the Lwt/delimcc article", "url": "https://news.ycombinator.com/item?id=46922439", "date": "2026-02-07"}], "tags": [], "use_cases": ["direct-style io in ocaml", "async i/o for ocaml"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48147058", "title": "O(x)Caml in Space", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46859267", "title": "Delimited Continuations vs. Lwt for Threads", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46641444", "title": "Show HN: Lwt-to-Eio \u2013 Automated Migration from Lwt to OCaml 5 Direct Style", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=45846517", "title": "Why I love OCaml (2023)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=45807735", "title": "Pain Points of OCaml", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1, "compare": 1}, "2025-12": {}, "2026-01": {"recommend": 1}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {"recommend": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 770380768, "item_id": 48148798, "url": "https://news.ycombinator.com/item?id=48148798", "by": "avsm", "date": "2026-05-15", "stance": "recommend", "quote": "much easier now with OCaml effects to build custom fast serialisers", "excerpt": "Nice work! Did you ever open any open source any of it? Looking at your OCaml wishlist from back in 2017, some stuff has improved and some is on its way: - Support for read-only BigArrays (or sections) : we're starting to switch to just using bytes/string in OCaml 5+ now, since the larger allocations go into malloc'ed pools and do not relocate, so they can be used as part of an FFI (without the Bigarray C value overh", "context": "", "use_case": "", "switched_from": "", "story": "O(x)Caml in Space"}, {"id": 750759024, "item_id": 46922439, "url": "https://news.ycombinator.com/item?id=46922439", "by": "avsm", "date": "2026-02-07", "stance": "recommend", "quote": "I use Eio these days to do direct-style IO", "excerpt": "(original author of that article here) This is a blast from the past! And indeed, I use Eio these days to do direct-style IO; you can see an example of a HTTP/1.1 parser done in that style, and there's nary a monad in sight! https://tangled.org/anil.recoil.org/ocaml-requests/blob/main/lib/h1/http_read.ml OCaml's effects are similar to thethe delimcc hack used in the article, except that it's nicely integrated into OC", "context": "original author of the Lwt/delimcc article", "use_case": "direct-style IO in OCaml", "switched_from": "Lwt", "story": "Delimited Continuations vs. Lwt for Threads"}, {"id": 746263249, "item_id": 46641453, "url": "https://news.ycombinator.com/item?id=46641453", "by": "oug-t", "date": "2026-01-15", "stance": "recommend", "quote": "migrating my libraries from Lwt to Eio to take advantage of OCaml 5\u2019s direct-style concurrency", "excerpt": "Hi everyone, Like many of you, I\u2019ve been looking into migrating my libraries from Lwt to Eio to take advantage of OCaml 5\u2019s direct-style concurrency. While the manual migration guides are excellent, I found myself making the same mechanical changes over and over\u2014flattening binds, unwrapping promises, and rewriting maps. So, I built lwt-to-eio, a tool that automates the boring parts of this transition. Repo: https://g", "context": "", "use_case": "", "switched_from": "Lwt", "story": "Show HN: Lwt-to-Eio \u2013 Automated Migration from Lwt to OCaml 5 Direct Style"}, {"id": 733568272, "item_id": 45848017, "url": "https://news.ycombinator.com/item?id=45848017", "by": "dmpk2k", "date": "2025-11-07", "stance": "compare", "quote": "now there is the whole Eio/Lwt/Async thing", "excerpt": "Alleged? Come now. Beginners face the following problems: there's multiple standard libraries, many documents are barely more than type signatures, and data structures aren't printable by default. Experts also face the problem of a very tiny library ecosystem, and tooling that's often a decade behind more mainstream languages (proper gdb support when?). OCaml added multicore support recently, but now there is the who", "context": "", "use_case": "", "switched_from": "", "story": "Why I love OCaml (2023)"}, {"id": 733013904, "item_id": 45813369, "url": "https://news.ycombinator.com/item?id=45813369", "by": "yawaramin", "date": "2025-11-04", "stance": "recommend", "quote": "Check out Eio.", "excerpt": "We have exactly that in OCaml. Check out Eio.", "context": "", "use_case": "Async I/O for OCaml", "switched_from": "", "story": "Pain Points of OCaml"}]}