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 (like
libffi) for esy but I don’t understand why I would need them.
Does that mean, when I require them in my
package.jsonI 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!