Fast text formatting language for Java.
- Lightweight with no dependencies
- Faster than
String.format
(See Benchmark) - Standard operators + - * / % ^
- Ability to call functions defined in java
- Variables can be different each time they are used
- Conditional output (ternary operator)
- Variables can be maps
Hello {name}!
Number: {someNumber * 100}
FPS: {round(fps)}
Today is a {good ? 'good' : 'bad'} day
Name: {player.name}
Gradle:
repositories {
maven {
name = "meteor-maven"
url = "https://maven.meteordev.org/releases"
}
}
dependencies {
implementation "meteordevelopment:starscript:0.2.2"
}
Java:
// Parse
Parser.Result result = Parser.parse("Hello {name}!");
// Check for errors
if (result.hasErrors()) {
for (Error error : result.errors) System.out.println(error);
return;
}
// Compile
Script script = Compiler.compile(result);
// Create starscript instance
Starscript ss = new Starscript();
StandardLib.init(ss); // Adds a few default functions, not required
ss.set("name", "MineGame159");
// ss.set("name", () -> Value.string("MineGame159"));
// Run
System.out.println(ss.run(script)); // Hello MineGame159!
Full syntax and features can be found on wiki.
Javadocs can be found here.