#format #parser #rhythm #serialization #sm #folder #msd

nightly rg_formats

Parsers and Serializers for various rhythm game formats

3 releases

0.1.2 Sep 7, 2023
0.1.1 Sep 7, 2023
0.1.0 Sep 7, 2023

#1738 in Parser implementations

23 downloads per month

MIT license

1.5K SLoC

RG Formats

This crate provides parsers and serializers for various rhythm game formats.

At the moment, only two formats are supported:

  • sm, for processing .sm files
  • sm_msd, for processing .msd files, which underpin both the .sm and .ssc formats.


Documentation can be found on [docs-rs].

Example Usage

Examples are included in the examples/ folder.


Rhythm Game Formats


Various processors for various rhythm game formats.

These are the currently available modules:

  • [sm] for parsing .sm files.
  • sm_msd for parsing .msd files, or generally working with the raw underpinnings of the .sm and .ssc formats.

Clicking on either of these modules will tell you more.


let sm_charts = rg_formats::sm::from_path("my_sm_file.sm")
    // an outer io::Error<> indicates whether the file could be read
    .expect("failed to open file")
    // the inner error indicates whether the contents of the file were valid SM.
    .expect("sm file was invalid");


~80K SLoC