xiwrap

slightly higher-level container setup utility
git clone https://git.ce9e.org/xiwrap.git

NameSize
LICENSE1072B
PKGBUILD496B
README.md2713B
includes/a11y98B
includes/audio106B
includes/base129B
includes/default59B
includes/gui525B
includes/host-os188B
includes/locale263B
includes/network93B
includes/portal203B
xiwrap.py11804B

xiwrap - slightly higher-level container setup utility

xiwrap is a thin wrapper around bwrap that adds some features:

Example usage

xiwrap --include host-os --dbus-talk org.freedesktop.portal.Desktop -- bash

See xiwrap --help for a full list of options.

Security disclaimer

I am not an expert and this project is meant more for learning and experimenting than for production use.

Why another tool?

Linux has great low-level sandboxing features. However, I feel like we have not yet found the right high level abstraction. Docker, systemd, and flatpak are all great, but I think we can do better.

There is a sprawling, messy ecosystem of tools (mostly centered around bwrap and firejail) that experiment with alternative designs. I think this is great. We have to allow for some creative chaos to come up with great designs. xiwrap is my contribution to that mess.

The real goal is to find a set of reusable, easy-to-understand configuration modules. xiwrap is only a tool that allows me to easily iterate on those modules.

Why not flatpak?

flatpak is a mature and well established project that also uses bwrap and xdg-dbus-proxy. I actually really like the high level permissions they have been building.

However, flatpak does much more than just sandboxing. With flatpak, libraries are not managed centrally, but come bundle with each app. As a result, they are often redundant or even outdated. This is because flatpak's main goal is to simplify packaging for Linux. Their vision is that users get their apps directly from developers instead of going through distros. Sandboxing is a necessary condition for that vision, but not a goal in itself. Much of the criticism flatpak received ([1] [2]) is targeted at this second aspect.

So you can think of xiwrap as an attempt to build something that has all of flatpak's sandboxing features, but none of the rest. Not because flatpak is bad, but because strong, usable sandboxing is also useful in the context of a traditional distro.

Prior Art