diff --git a/README.md b/README.md index 5627c6afaec6514d531533ec2ebd01bc9d3281d2..b1f492f265e663dcb55452a1739082a5178f1439 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,32 @@ libglnx is the successor to libgsystem: https://git.gnome.org/browse/libgsystem It is for modules which depend on both GLib and Linux, intended to be used as a git submodule. +Features: + + - File APIs which use `openat()` like APIs, but also take a `GCancellable` + to support dynamic cancellation + - APIs also have a `GError` parameter + - High level "shutil", somewhat inspired by Python's + - A "console" API for tty output + - Some basic container utility functions + - A backport of the GLib cleanup macros for projects which can't yet take + a dependency on 2.40. + +Why? +---- + +There are multiple projects which have a hard dependency on Linux and +GLib, such as NetworkManager, ostree, xdg-app, etc. It makes sense +for them to be able to share Linux-specific APIs. + +This module also contains some code taken from systemd, which has very +high quality LGPLv2+ shared library code, but most of the internal +shared library is private, and not namespaced. + +One could also compare this project to gnulib; the salient differences +there are that at least some of this module is eventually destined for +inclusion in GLib. + Porting from libgsystem -----------------------