viro 1.0.4

Loads your environment so you don't have to.
Documentation
# viro

Loads your environment so you don't have to.

Offers a data structure for serializing and deserializing environment variables, to allow for easy
loading of `/etc/profile` scripts in non-POSIX shells like `fish`. The `viro` binary is only
available for unix-based systems at the moment; see the "Roadmap" section of this README for
details.

## License

Available via the [Anti-Capitalist Software License][ACSL] for individuals, non-profit
organisations, and worker-owned businesses.

[ACSL]: ./LICENSE.md

## Installation

First, build `viro` for your system with the `sync-stdio` feature and install it in `/usr/bin`,
alongside the `viro-profile` script.

Depending on whether you want to use systemd or no d, merge the `/usr` provided in either
`systemd/usr` or `nod/usr` with your own.

## Usage

Because bash does not have a standardized config directory, you will need to source the scripts in
`/usr/share/bash/bashrc.d` in order to make this work. If you chose to use systemd, you must also
enable the `profile.service` for your user.

## Roadmap

For now, the `viro` crate has no actual support for converting environment variables into byte
sequences, and the `viro` binary simply assumes that the conversion is trivial, as it is on
POSIX-compliant systems. However, on systems like Windows, a more complicated conversion will be
necessary to convert between genuine environment variables and byte slices using a format like
[WTF-8].

Additionally, there are currently no attempts to escape `\x3D` (equals sign) and `\x00` (NUL) bytes
when outputting variables, and this simply alters the output. A future version of this crate will
want to offer these, but I have no plans to implement this at the moment.

[WTF-8]: https://simonsapin.github.io/wtf-8