containers / containers/crun

Can't find any documentation of libcrun API, nor explanation of what are the "top"-level functions/header files

Open
#1,018 3 comments 3 reactions 0 assignees View on GitHub
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:

![cgroup](https://user-images.githubusercontent.com/18113700/193421273-eaa8de4e-c5b1-4783-8cc3-100c9f1ae60a.svg)

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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.