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
65 downloads per month
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
orjava-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