lume_dart 1.0.9 copy "lume_dart: ^1.0.9" to clipboard
lume_dart: ^1.0.9 copied to clipboard

Dart bindings for Lume CLI macOS VMs.

lume_dart #

A Dart wrapper package for Lume, a CLI tool for managing macOS and Linux virtual machines on Apple Silicon. Easily control Lume VMs (start, list, clone, stop, delete) from Dart applications.

Features #

  • 💻 List VMs: Fetch detailed metadata of VMs, including execution status, IP address, and SSH availability.
  • 🚀 VM Operations: Start (with background execution support), clone, stop, and delete VMs.
  • 🛡️ Robust Process Management: Prevents process hangs caused by pipe buffer overflow during background execution.

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  lume_dart: ^1.0.5

Or run:

dart pub add lume_dart

Note: The lume CLI must be pre-installed on the host machine and available in your PATH.

Usage #

Importing the library #

import 'package:lume_dart/lume_dart.dart' as lume;

List VMs (ls) #

void main() async {
  // Get status of all VMs
  final List<lume.LumeVM> vms = await lume.ls(showLogs: false);

  for (final vm in vms) {
    print('VM Name: ${vm.name}');
    print('Status: ${vm.status}'); // e.g. 'running', 'stopped'
    print('IP Address: ${vm.ipAddress}');
    print('SSH Available: ${vm.sshAvailable}');
    print('---');
  }
}

Start VM (run) #

void main() async {
  // Start VM in background
  // When showLogs is false, stdout/stderr streams are automatically drained internally to prevent pipe buffer overflows
  final Process process = await lume.run(
    name: 'my-macos-vm',
    noDisplay: true,
    showLogs: false,
  );

  print('VM started with PID: ${process.pid}');
}

Clone VM (clone) #

void main() async {
  // Duplicate a new VM from a source image
  await lume.clone(
    source: 'macos-base-image',
    target: 'my-new-vm',
  );
  print('Clone completed.');
}

Stop & Delete VM (stop, delete) #

void main() async {
  // Stop VM
  await lume.stop(name: 'my-new-vm');

  // Delete VM
  await lume.delete(name: 'my-new-vm');
}
0
likes
140
points
8
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Dart bindings for Lume CLI macOS VMs.

License

Apache-2.0 (license)

Dependencies

freezed_annotation, json_annotation

More

Packages that depend on lume_dart