3 unstable releases

0.1.1 May 27, 2024
0.1.0 May 23, 2024
0.0.0 Apr 28, 2024

#1029 in Parser implementations

Download history 19/week @ 2024-07-25 2/week @ 2024-08-01 5/week @ 2024-09-19 35/week @ 2024-09-26 25/week @ 2024-10-03

65 downloads per month

MIT/Apache

43KB
1.5K SLoC

spuz_piston by coppebars

Json specification of the minecraft json things, such as version manifests, version lists, jre components

Supported documents

  • Version manifest (example)

    Contains information about the game files and how else to run the game

  • Version list (example)

    Information about versions over time

  • Asset Index (example)

    Game assets files metadata

  • Java Runtimes (example)

    Java runtime components that minecraft runs on

  • Java Runtime Manifest (example)

    All files you can download to get jre for target component

Terminology

  • Manifest - json file required by the game
  • Java Component - Different versions of Minecraft require different versions of Java, this is expressed by specifying the component in the version manifest. It doesn't make sense outside of the context of Minecraft. This is an internal value that maps to the required version of jre. Usually the name of the component is: java-runtime-gamma or java-runtime-delta
  • Rule - This is a simple condition that configures the version manifest (to launch or download files) for a particular OS version to not download unnecessary files and apply OS-specific optimizations.

How to launch from any manifest

You can use spuz_piston along with spuz_spawner and spuz_wrench to configure and run the game process

Example

// Read manifest from filesystem
let manifest_str = fs::read_to_string("./1.20.6.json")?;
let manifest = Manifest::from_str(&manifest_str)?;

Dependencies

~0.7–1.6MB
~34K SLoC