=== Vessel - Integrated Application Containers for FreeBSD

Links: +
link:https://github.com/ssteidl/vessel[Vessel] URL: link:https://github.com/ssteidl/vessel[https://github.com/ssteidl/vessel]

Contact: Shane Steidley <ssgriffonuser@gmail.com>

==== What is Vessel?

The goal of vessel is to expose the many powerful features of FreeBSD to application developers.
Vessel accomplishes this goal by:

* Providing a "Docker-like" interface familiar to most application developers for building, running, publishing and pulling container images.
* Tightly integrating with FreeBSD system level interfaces (kqueue process tracing, signal handling, devd.seqpacket, rctl, cpuset) to manage running jails.

==== How is Vessel different from other jail management systems?

There are some awesome jail management systems already.
These existing systems do a great job of configuring the jail runtime environment (ZFS dataset, networking, resource control, etc).
After the environment is configured though, it is just handed off to the `jail` program via an exec call.

In addition to jail configuration and creation, Vessel aims to take the next step and implement an event loop to manage jails based on system events.
An instance of vessel runs alongside each jail to assist with management.
This allows "Fat Jails" and single process jails to run in the foreground and be managed by the vessel-supervisor.

==== Why make Vessel?

Vessel has been a side project for a few years.
I initially started it because it was a fun hobby project and I was surprised something similar did not already exist.
It has now become a viable tool that I use for all of my projects.
I believe it will be useful to others as well.

==== Is help needed?

Help is always appreciated.
It's a fun project to work on because it can touch on so many portions of FreeBSD.

* Just using it and reporting any bugs on GitHub would be very useful.
* Whatever sounds fun.
I'm happy to help get people started.
