Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mroth/ramdisk
:ram: Convenience wrapper for managing RAM disks
https://github.com/mroth/ramdisk
cli linux macos ramdisk
Last synced: 8 days ago
JSON representation
:ram: Convenience wrapper for managing RAM disks
- Host: GitHub
- URL: https://github.com/mroth/ramdisk
- Owner: mroth
- License: mit
- Created: 2019-01-08T01:51:26.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2022-12-19T02:09:09.000Z (almost 2 years ago)
- Last Synced: 2024-06-20T09:15:15.585Z (5 months ago)
- Topics: cli, linux, macos, ramdisk
- Language: Go
- Homepage:
- Size: 23.4 KB
- Stars: 47
- Watchers: 4
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ramdisk :ram:
Convenience wrapper for managing RAM disks across different operating systems
with a consistent interface.## Usage
Help screen:
```
$ ramdisk -h
ramdisk 0.1.0 🐏Usage:
ramdisk [options] create []
ramdisk destroyOptions:
-h -help Show this screen.
-v Verbose output.
-size= Size in megabytes [default: 32].
```Creating a new ram disk with a specified size:
```
$ ramdisk -size=512 create
512MB ramdisk created as /dev/disk5, mounted at /tmp/ramdisk-401987900
To later remove do: `ramdisk destroy /dev/disk5`
```## Installation
* 💾 Download a [precompiled binary](https://github.com/mroth/ramdisk/releases/).
* 🍺 Homebrew on macOS: `brew install mroth/tap/ramdisk`
* 📦 Compile via Go toolchain: `go install github.com/mroth/ramdisk/cmd/ramdisk@latest`## Platform Support
### macOS :white_check_mark:
Works great and does not require superuser access.
The basic steps followed are:
- Create an unmounted but attached device in RAM that consists of the
appropriate number of device blocks via `hdiutil`.
- Format a new uniquely named HFS+ volume on that device via `newfs_hfs`.
- Mounts the volume at a uniquely generated path within the `/tmp` filesystem,
via `mount`.This normally requires a sequence of arcane commands on the macOS command line
which I can never remember, and thus was the primary reason I created this
wrapper.### Linux :white_check_mark:
Things are quite simple and work great via `tmpfs` on Linux! (But note that most
Linux implementations unfortunately requires sudo access to mount new volumes.)
If you prefer a sudo-less route, most modern Linux on kernel 2.6+ often
_already_ has `/dev/shm` mounted, which is memory backed, so you can also just
use that without any initialization at all.### Windows :x:
This would be great, unfortunately there is no built-in support at the operating
system level at current time. The standard solution seems to be to use [ImDisk],
but I haven't built support for that into this library yet because well, relying
on third-party drivers to be installed on an end user system isn't going to
work.[ImDisk]: http://www.ltr-data.se/opencode.html/#ImDisk