massivebird / arcconfig

A library for interacting with my video game archive
https://crates.io/crates/arcconfig
GNU General Public License v3.0
0 stars 0 forks source link

arcconfig

short for "archive configuration"

Crate GitHub License

🦀 written in Rust

What is arcconfig?

Arcconfig is for people who collect catalogues — or "archives" — of games in the form of ROMs, ISOs, etc.

Arcconfig provides a layer of abstraction over your archive, allowing you to interact with it via Rust!

Arcconfig represents each game system in your archive as System instances, each of which contains data such as a display name and path (see: Customization). This allows you to write cool Rust projects such as:

How do I use it?

To use arcconfig in your own Rust project, you must first add it as a dependency.

One way you can do this according to crates.io is running this command in your project directory:

cargo add arcconfig

Customization

arcconfig::read_config parses a file called config.yaml located in your archive root. This function returns a collection of System instances based on that configuration!

For a quickstart on YAML syntax, click here.

Here is an example configuration:

# config.yaml
systems:
  ds: # system "label" — call it whatever you want!
    display_name: "DS"
    color: [135,215,255]
    path: "ds" # path relative to archive root
    games_are_directories: false # are games stored as directories?
  snes:
    display_name: "SNES"
    color: [95,0,255]
    path: "snes"
    games_are_directories: false
  wii:
    display_name: "WII"
    color: [0,215,255]
    path: "wbfs"
    games_are_directories: true

Feel free to use these System instances however you'd like!

Other arcosystem projects

Arcconfig belongs to a family of projects called the arcosystem!

See the projects that arcconfig makes possible: