SukkaW / memdisk

A library and a CLI to create RAM disk on macOS and Linux.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

memdisk

A library and a CLI to create RAM disk on macOS and Linux.

Usage

As a library

import { create, destroy } from 'memdisk';

const dir = create.sync(
  'memdisk', // The name of the RAM disk
  1024 * 1024 * 1024, // The size in bytes
  // optional options
  {
    // Supress the output. Default to true
    quiet: true,
    // Throw an error if the platform is not supported.
    // When set to false, a temporary folder (which may or may not be a RAM disk) will be created.
    // Default to true
    throwOnNotSupportedPlatform: true,
    // Use HFS+ instead of APFS on macOS. Default to false
    darwinUseHFSPlus: false,
  }
); // Returns the path to the mounted RAM disk

destroy.sync(
  dir, // The absolute path to the mounted RAM disk
  // optional options
  {
    // Supress the output. Default to true
    quiet: true,
    // Throw an error if the platform is not supported.
    // When set to false, a delete operation will be performed on the path.
    // Default to true
    throwOnNotSupportedPlatform: true,
    // Force unmount the RAM disk. Default to true.
    force: true
  }
);

// Promise based API is also available
const dir = await create.async('memdisk', 1024 * 1024 * 1024);
destroy.async(dir);

// Node.js-style callback (errback) API is also available
create.errback('memdisk', 1024 * 1024 * 1024, (err, dir) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(dir);
  destroy.errback(dir, (err) => {
    if (err) {
      console.error(err);
      return;
    }
    console.log('Destroyed');
  });
});

As a CLI

$ memdisk --help

Usage: memdisk [options] [command]

CLI to create and destroy RAM disks

Options:
  -V, --version                      output the version number
  --silent, --quiet                  Disable messages (default: false)
  --throw-on-not-supported-platform  Throw an error if the current platform doesn't support RAM disks (default: true)
  -h, --help                         display help for command

Commands:
  create <size> [name]               Create a RAM disk with size and disk name
  destroy [nameOrPath]               Destroy a RAM disk with name or path
  help [command]                     display help for command
$ memdisk create --help

Usage: memdisk create [options] <size> [name]

Create a RAM disk with size and disk name

Arguments:
  size        Size of the RAM disk, accepts number or string with unit (e.g. 16mb, 32mib, 128m, 1G, 4g, 8gib, etc.)
  name        Name of the RAM disk, default is "ramdisk" (default: "ramdisk")

Options:
  --darwin-use-hfs-plus  Use HFS+ instead of APFS on macOS (default: false)
  -h, --help  display help for command
$ memdisk destroy --help

Usage: memdisk destroy [options] [nameOrPath]

Destroy a RAM disk with name or path

Arguments:
  nameOrPath  Name or path of the RAM disk (if argument is not an absolute path, it will be treated as a name), default is "ramdisk" (default: "ramdisk")

Options:
  --force     Force unmouting and removing the RAM disk (default: false)
  -h, --help  display help for command

memdisk © Sukka, Released under the MIT License.
Authored and maintained by Sukka with help from contributors (list).

Personal Website · Blog · GitHub @SukkaW · Telegram Channel @SukkaChannel · Mastodon @sukka@acg.mn · Twitter @isukkaw · Keybase @sukka

About

A library and a CLI to create RAM disk on macOS and Linux.

License:MIT License


Languages

Language:TypeScript 99.4%Language:JavaScript 0.6%