# mdconfig
Rust bindings to FreeBSD's [md(4)] driver.
`md` devices are memory disks, that can be backed by RAM, swap, or a file. They can be useful
for temporary storage, and they're very useful for working with disk images as
files. This crate provides bindings to `md` that are equivalent to what the
[mdconfig(8)] utility provides, but Rustier.

[](https://crates.io/crates/mdconfig)
[Documentation](https://docs.rs/crate/mdconfig)
[md(4)]: https://man.freebsd.org/cgi/man.cgi?query=md
[mdconfig(8)]: https://man.freebsd.org/cgi/man.cgi?query=mdconfig
# Usage
See the examples in the API docs. The general idea is to create a `Builder`
struct, set various options, and then construct the `Md` device from that. Most
applications will then open the `Md` device's path with the standard file system
API. When complete, the `Md` object will tell the kernel to deallocate the `md`
device upon Drop.
# Platforms
This crate only works on FreeBSD. Similarly named drivers in NetBSD and
DragonflyBSD actually have very different APIs.
# Minimum Supported Rust Version (MSRV)
`mdconfig` does not guarantee any specific MSRV. Rather, it guarantees
compatibility with the oldest rustc shipped in the FreeBSD package collection.
* https://www.freshports.org/lang/rust/
# License
`mdconfig` is primarily distributed under the terms of both the MIT license and
the Apache License (Version 2.0).
See LICENSE-APACHE, and LICENSE-MIT for details.