Hey ,
I am already working with esy on a backend GraphQL API.
But the more I use it, the more I run into problems which lets me believe, I am doing something wrong or am not really understanding all the different parts of native development involved with ocaml / reason.
I am also really new to native, so it is probably extra hard for me to understand everything.
My questions would be:
-
What is esy exactly?
I always thought it was just a package-manager (like npm or yarn) but it is probably more than that, right? -
How do the different parts of opam, dune and esy play into each other? What are each of these tools responsible for?
-
Is esy a replacement for dune or opam or is it just an additional layer on top, providing some benefits?
-
What are the benefits of using esy over just dune / opam? Other than being able to consume packages published to npm?
-
What are esy-ocaml and esy-packages and why do I need them?
As I understand they package some often used libraries (likelibffi
) for esy but I don’t understand why I would need them.
Does that mean, when I require them in myesy.json
/package.json
I don’t have to install them globally on my system / in my docker container? -
What are some good resources to learn esy / native reason?
Just to clarify, I don’t want to sound like “nobody needs this, why does this all exist”.
I am just trying to understand how this all works and plays into each other.
Thank you all for your work and this awesome community!