# Monadic Library for Eio Capabilities?

**URL:** <https://discuss.ocaml.org/t/monadic-library-for-eio-capabilities/14202>\
**Category:** Learning\
**Tags:** effects\
**Created:** [February 27, 2024, 3:18pm UTC](https://discuss.ocaml.org/t/monadic-library-for-eio-capabilities/14202 "2024-02-27T15:18:08Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![patricoferris](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/patricoferris/32/3621_2.png) [@patricoferris](https://discuss.ocaml.org/u/patricoferris)\
**Post date:** [February 28, 2024, 1:44pm UTC](https://discuss.ocaml.org/t/monadic-library-for-eio-capabilities/14202/6 "2024-02-28T13:44:26Z")

</div>

I thought I would do a minimal experiment to have a networking interface that doesn’t require a networking capability: [GitHub - patricoferris/neio](https://github.com/patricoferris/neio) – this is just using the posix and linux (I don’t have a windows machine currently) low level interfaces and wrapping them in what is mostly a small subset of the `Eio.Net` interface and making some different opinionated choices (e.g. no capabilities, removing some of the uses of subtying with polymorphic variants and instead providing conversion functions to flows or fds etc.).

Hopefully this is useful to imagine what Eio offers in terms of taking care of a lot of the _low level_ OS interactions in a safe way (structured concurrency, reference counted file descriptors etc.) and you are free to choose how to wrap that and present it to an end-user :))

---

_[View the full topic](https://discuss.ocaml.org/t/monadic-library-for-eio-capabilities/14202)._
