Skip to content

Store large, unmanageable yaml files as multiple, manageable ones across your file system.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE_APACHE_2.0
MIT
LICENSE_MIT
Notifications You must be signed in to change notification settings

Timothy-Gonzalez/fsyaml

Repository files navigation

fsyaml fsyaml

Crates.io Crates.io License

Store large, unmanageable yaml files as multiple, manageable ones across your file system.

Prerequisites

Before using this tool, you should know the basics of yaml.

How It Works

fsyaml allows you to split up your large yaml files into multiple ones, and then easily compile them back into one file when needed.

For example, consider the following yaml:

a:
  b: 1
c:
  d:
    e: 2

It could be restructured in your file system as:

root
├─a.yaml
└─c
  └─d.yaml

Where a.yaml is:

b: 1

and d.yaml is:

e: 2

This allows you to separate out your file, and can make huge files much more maintainable.

To see the above example in action, you can visit tests/readme_example.

For more examples, see tests, which each contain a root directory and the expected.yaml output.

Install

Once you've set up your file system of yaml files, you'll need to eventually combine them all back into one.

To do this, you'll install fsyaml.

Through Releases

One way is by release binary from the latest release.

On windows, you can add it to any folder as long as you add that folder to the path.

On linux, simply add it to your bin folder.

With Cargo

Another way is using cargo, which you can install by following these instructions.

After that, you can run a simple command in your terminal:

cargo install fsyaml

Usage

Once you've installed fsyaml, you can use it like so:

Output to a file:

fsyaml path/to/root output.yaml

Output as a stream:

fsyaml path/to/root > output.yaml

Disclaimer: This will not work on windows, and will output with UTF-16 LE encoding (Read more here)

Limitations

This is a list of limitations to fsyaml that are not currently supported. If you'd like to tackle one of them, feel free to open a pull request!

  • Lists by file structure is not supported (only maps)
  • Maps by file structure are not order-consistent across platforms
  • Merge keys are not supported (unsure about this, not technically official YAML spec)
  • Symbolic linking is not supported

License

Dual-licensed under MIT or Apache-2.0

About

Store large, unmanageable yaml files as multiple, manageable ones across your file system.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE_APACHE_2.0
MIT
LICENSE_MIT

Stars

Watchers

Forks

Packages

No packages published

Languages