Can't find any documentation of libcrun API, nor explanation of what are the "top"-level functions/header files
- Dominant language
- C
- Stars
- 4.1k
- Forks
- 444
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 43
Description
The README [currently states that][readme-lib]
> crun aims to be also usable as a library that can be easily included in programs without requiring an external process for managing OCI containers.
However, aside from the fact that there are apparently [no developer header files available](https://github.com/containers/crun/issues/822), I can't even find out what the API for libcrun *is*. Is there any documentation at all of what functions constitute the intended public-facing parts of the library? I found nothing in the docs directory, and the README doesn't even suggest which header files one might start with, out of the 21 contained in `src/libcrun`. Running Doxygen over the source to get an idea of the structure didn't seem to help much – every header file seems to refer to almost every other header file, producing dependency graphs like this:

Could you at least mention, in the README, what header files might be useful to look at?
So far, the most helpful file I've found seems to be `python/crun_python.c` – even though I'm not intending at all to use Python – because it does at least suggest what the "top-level" functions are supposed to be (e.g. `libcrun_container_load_from_memory`). If the aim is for libcrun to be useful as a library, then perhaps expanding on and documenting the code in `python/crun_python.c` might be helpful to users?
[readme-lib]: https://github.com/containers/crun/blob/77d2ac56eb560d5cb482c121236286964fe40765/README.md?plain=1#L27
Contributor guide
Assessment
This issue has not been assessed yet.