Выберите, как приложение на Топазе будет взаимодействовать с другой программой или средой выполнения. Таблица поможет найти нативный файл, интерфейс JavaScript, вызов правила Лиспекса или преобразование исходников.
Начните с работающего пакета Топаза. Руководства по ссылкам объясняют, какие файлы, инструменты и входные данные нужны для каждого варианта.
Выберите способ по задаче
| Задача | С чего начать | Что использовать |
|---|---|---|
| Запустить настольную или серверную программу | Бэкенд Rust | Нативный файл, собранный через Cargo для ОС и архитектуры машины сборки |
| Вызвать Топаз из браузера или Worker | WASM и песочница | Пакет Web или Worker со сгенерированными привязками JavaScript и объявлениями типов |
| Добавить обёртку на Rust или в сервисе | Бэкенд Rust | Сгенерированный продукт и собственный вызывающий код |
| Вызывать правила решений из приложения | Запуск правил Лиспекса | Пакет с именованными правилами, лимитами, квотами и типизированными результатами |
| Вычислить одно правило Лиспекса без пакета | Вычислитель Лиспекса и LIT | Файлы правила, входа и лимитов, затем результат и отчёт |
| Проверить инструментарий интерпретатором LIT | Вычислитель Лиспекса и LIT | Одна тестовая программа при прямом выполнении, через сгенерированный Rust и через Web |
| Преобразовать исходники с Lena Code | Интеграция с Lena Code | Отдельно сопровождаемый процесс преобразования исходников |
build --target выбирает результат сборки для поставки. topaz lispex embed вычисляет правило. LIT служит тестовой программой репозитория. Выберите операцию под свою задачу.
Пишите исходники Топаза на его синтаксисе
Размещайте прикладную логику в модулях .tpz. Модули, импорты, выражения, типы, шаблоны и диагностика следуют правилам Топаза.
Для подключения стороннего кода используйте интерфейс сгенерированного продукта. Его ABI определяет передачу аргументов и результатов между программами. Топаз не принимает import rust или встроенные выражения Rust и JavaScript. Владение и исключения нужно явно обрабатывать в вызывающем коде. Сгенерированный исходный файл не расширяет синтаксис .tpz.
Проверьте результат после подключения
- Проверьте и запустите пакет Топаза с известными входными данными.
- Соберите выбранную цель и передайте продукту тот же вход.
- Сравните используемые приложением результаты, например стандартный вывод, код завершения, выходные файлы или поле, возвращённое в JavaScript.
- Повторите проверку при смене компилятора или целевой платформы.
Запишите вход, среду и ожидаемый результат, чтобы другой разработчик мог повторить проверку. Внутреннее устройство объектов и структура сгенерированного кода могут различаться между платформами.
Проверьте вызывающий код и разрешения
Хостом называется программа или среда, вызывающая код Топаза. Отдельно проверьте зависимости обёртки, владение, обработку ошибок и безопасность.
Импорт модуля не даёт разрешений на файлы, сеть, процессы, переменные окружения, часы или базу данных. Настройте разрешения в среде, где выполняется операция. Если целевая платформа не сохраняет нужное поведение, она должна сообщить об ошибке, а не менять его молча.
Правила Лиспекса выполняются без доступа к файлам, часам и сети. Сохранённые записи вычислений не подписаны и не разрешают внешние действия. О лимитах ресурсов и обработке записей читайте в разделе Запуск правил Лиспекса.