Что такое Jumper?
Jumper - скриптовый язык для JVM с синтаксисом Java и лёгкостью Lua. Java-приложение встраивает его, чтобы запускать скрипты, написанные другими людьми: плагины и моды сервера, пользовательскую автоматизацию, конфиги с логикой. При этом приложение точно решает, к чему эти скрипты имеют доступ.
jumper
void onJoin(dyn player) {
player.send("Welcome, " + player.name() + "!");
server.broadcast(player.name() + " joined");
}Почему Jumper
- Знакомый. Синтаксис Java:
if,for, классы, лямбды,import. Типы необязательны:dynдля динамических значений,int,Stringили класс там, где нужна проверка. - Лёгкий. Таблицы (
{ x: 1 }), массивы, функции как значения, замыкания, модули. Без сборки: скрипт - это текстовый файл. - Java под рукой.
import java.util.HashMap;,new, вызовы методов, поля - любой класс, который разрешил хост. - Безопасный. Каждый скрипт работает под политикой доступа (
.jma): белым списком пакетов, классов и методов Java. Всё, чего нет в списке, закрыто. - Быстрый. Интерпретатор для кода, который выполняется один раз, и компилятор в байткод JVM для горячих функций.
- С инструментами. Языковой сервер и плагины для IntelliJ IDEA, VS Code и Neovim.
Файлы
| Файл | Что это |
|---|---|
.jmp | скрипт |
.jma | политика доступа: что скриптам можно использовать из Java |
.jmc | конфиг: значения и условия, без циклов и без Java |