# cargo-ramdisk
This crate is only supported for unix like systems!
`cargo-ramdisk` creates a ramdisk at the target folder of your project for ridiculously faster compilation times.
This is achieved without root permisions by linking your target folder to a temporary folder in `/dev/shm` in your unix like OS. This location is `rw` for all users and is mounted in virtual memory as a `tmpfs`.
### Install
```
cargo install cargo-ramdisk
```
### Usage
```
USAGE:
cargo ramdisk [OPTIONS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-t, --target The path to the target folder where compilation output is written [default: target/]
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
mount Mount a ramdisk, same as not specifying a subcommand
remount Remount an existing ramdisk
unmount Unmount an existing ramdisk
```
#### Copying data back to disk
In order to copy data back to disk you can use the flag `-c` or `--copy-to` in the `mount` and `unmount` subcommands.
#### Sub-commands usage
Cargo ramdisk has three main subcommands for its operation each one with its options and flags.
##### mount
```
Mount a ramdisk, same as not specifying a subcommand
USAGE:
cargo ramdisk mount [FLAGS] [OPTIONS]
FLAGS:
-c, --copy-to Copy the contents of the target folder to the ramdisk
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-t, --target The path to the target folder where compilation output is written [default: ./target]
```
##### remount
```
Remount an existing ramdisk
USAGE:
cargo ramdisk remount [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-t, --target The path to the target folder where compilation output is written [default: target]
```
##### unmount
```
Unmount an existing ramdisk
USAGE:
cargo ramdisk unmount [FLAGS] [OPTIONS]
FLAGS:
-c, --copy-back Copy back the contents of the ramdisk to the target folder
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-t, --target The path to the target folder where compilation output is written [default: target]
```