https://github.com/sukkaw/memdisk
A library and a CLI to create RAM disk on macOS and Linux.
https://github.com/sukkaw/memdisk
memdisk ramdisk
Last synced: 7 months ago
JSON representation
A library and a CLI to create RAM disk on macOS and Linux.
- Host: GitHub
- URL: https://github.com/sukkaw/memdisk
- Owner: SukkaW
- License: mit
- Created: 2024-07-14T15:16:31.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-11T17:02:25.000Z (about 1 year ago)
- Last Synced: 2025-04-16T09:24:42.860Z (12 months ago)
- Topics: memdisk, ramdisk
- Language: TypeScript
- Homepage:
- Size: 258 KB
- Stars: 15
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# memdisk
> A library and a CLI to create RAM disk on macOS and Linux.
## Usage
### As a library
```ts
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
```sh
$ 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 [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
```
```sh
$ memdisk create --help
Usage: memdisk create [options] [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
```
```sh
$ 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](https://github.com/SukkaW), Released under the [MIT](./LICENSE) License.
Authored and maintained by Sukka with help from contributors ([list](https://github.com/SukkaW/memdisk/graphs/contributors)).
> [Personal Website](https://skk.moe) · [Blog](https://blog.skk.moe) · GitHub [@SukkaW](https://github.com/SukkaW) · Telegram Channel [@SukkaChannel](https://t.me/SukkaChannel) · Mastodon [@sukka@acg.mn](https://acg.mn/@sukka) · Twitter [@isukkaw](https://twitter.com/isukkaw) · Keybase [@sukka](https://keybase.io/sukka)