Project icon

com.io7m.waxmill

Build status Maven Central Codacy Codecov

The waxmill package implements a set of tools and APIs for managing Bhyve virtual machines on FreeBSD.

Contents

Features

  • Create, configure, run, and destroy virtual machines.
  • Written in pure Java 11 for safety and portability.
  • Designed to run virtual machines under process supervision.
  • Rich command-line interface with extensive correctness checking and detailed usage and error messages.
  • Extensive documentation.
  • OSGi-ready.
  • JPMS-ready
  • High coverage automated test suite
  • ISC license

Releases

The current release is 0.0.12.

Source code and binaries are available from the repository.

Documentation

Documentation for the 0.0.12 release is available for reading online.

Documentation for current and older releases is archived in the repository.

User documentation

Maven

The following is a complete list of the project's modules expressed as Maven dependencies:

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.boot</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.client.api</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.client.vanilla</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.cmdline</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.database.api</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.database.vanilla</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.documentation</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.exceptions</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.locks</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.machines</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.parser.api</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.process.api</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.process.posix</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.serializer.api</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.strings.api</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.tests</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.xml</artifactId>
  <version>0.0.12</version>
</dependency>

<dependency>
  <groupId>com.io7m.waxmill</groupId>
  <artifactId>com.io7m.waxmill.realize</artifactId>
  <version>0.0.12</version>
</dependency>

Each release of the project is made available on Maven Central within ten minutes of the release announcement.

Changes

Subscribe to the releases atom feed.

2020-08-01 Release: com.io7m.waxmill 0.0.12
2020-08-01 Change: Refactor network device specification (tickets: 36 )
2020-07-30 Release: com.io7m.waxmill 0.0.11
2020-07-30 Change: (Backwards incompatible) Require partition names for BSD booting (tickets: 35 )
2020-07-30 Release: com.io7m.waxmill 0.0.10
2020-07-30 Change: Ensure grub-bhyve invocations are passed console devices (tickets: 34 )
2020-07-30 Release: com.io7m.waxmill 0.0.9
2020-07-30 Release: com.io7m.waxmill 0.0.8
2020-07-30 Change: Ensure vm-console uses the correct NMDM device side (tickets: 33 )
2020-07-30 Release: com.io7m.waxmill 0.0.7
2020-07-30 Change: Use -w by default. (tickets: 31 )
2020-07-30 Change: Extended the vm-set command to cover all flags
2020-07-30 Change: Assign VMs UUIDs with the bhyve -U flag (tickets: 32 )
2020-07-29 Release: com.io7m.waxmill 0.0.6
2020-07-29 Change: Use short IDs for compatibility with modern Bhyve (tickets: 30 )
2020-07-29 Change: Add vm-id-of command
2020-07-29 Release: com.io7m.waxmill 0.0.5
2020-07-29 Change: Refactor ZFS handling (tickets: 29 )
2020-07-28 Release: com.io7m.waxmill 0.0.4
2020-07-28 Change: Fix issue creating ZFS volumes (tickets: 28 )
2020-07-25 Release: com.io7m.waxmill 0.0.3
2020-07-25 Change: Add support for interface groups (tickets: 24 )
2020-07-25 Change: Add --replace options to device commands (tickets: 25 )
2020-07-25 Change: Fix LPC bootrom formatting (tickets: 26 )
2020-07-25 Change: Automatically create virtual machine filesystems (tickets: 23 )
2020-07-11 Release: com.io7m.waxmill 0.0.2
2020-07-11 Change: Add the vm-kill command
2020-07-11 Release: com.io7m.waxmill 0.0.1
2020-07-11 Change: Initial testing release

Sources

This project uses Git to manage source code.

Repository: https://github.com/io7m/waxmill

$ git clone https://github.com/io7m/waxmill

License

Copyright © 2020 Mark Raynsford <code@io7m.com> http://io7m.com

Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted, provided that the
above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.

Bug Tracker

The project uses GitHub Issues to track issues.