I’ve used it and happy with it. It is a low-level interface to the library, though, so you might want to wrap it up to suit your use case.
I’m not sure what you mean. Sqlite is a library that implements a database and offers an API for users to interact with. sqlite3-ocaml is a library that lets Ocaml users use it.
Because it does not reimplement the sqlite library in OCaml, it merely exposes (“binds”) the existing C library to OCaml by using the OCaml FFI (OCaml - Interfacing C with OCaml).
Generally there is some overhead because each language may not represent its data in memory the same. Whether or not this is a problem depends on how you’re using it. If you’re doing incredibly high performance work, sqlite may be the wrong choice in the first place.
For comparison, using a database like Postgresql or Mysql involves your program reaching out over a socket and talking to another computer, which is, often, much more expensive than talking to something running in the same memory as your program.