Общий Лисп:Как лучше всего использовать библиотеки в среде общего хостинга?
-
05-09-2019 - |
Вопрос
Я думал об этом на днях и хотел узнать, что скажет сообщество SO по этому поводу.
В настоящее время Common Lisp привлекает некоторое внимание как платформа веб-разработки, и на это есть веские причины (в чем, я уверен, вы уже убедились).
Мне было интересно, как можно использовать библиотеку в общей среде аналогично PHP.
Если я настрою что-то вроде SBCL в качестве интерпретатора для интерпретации файлов FASL, таких как Python или PHP, какой будет лучший способ использовать библиотеки (например, clsql например).
Большинство из них поставляются в виде устанавливаемых библиотек в формате asdf, но было бы глупо требовать и устанавливать библиотеку каждый раз, когда делается запрос.
Имейте в виду, что это касается общего хостинга;было бы лучше..
1) Установите общесистемные копии библиотек для использования в приложениях;уменьшает место, но могут возникнуть проблемы с использованием правильной версии библиотеки.
2) Разрешить пользователям (через панель управления) устанавливать себе локальные копии;больше места, нет проблем с версией.
3) Скажите им, чтобы они завернули его в модуль и загрузили по требованию, как это делает Python (я не уверен, можно ли и как это сделать с помощью Lisp).Лучшим вариантом было бы просто загрузить библиотеку для использования, но я не думаю, что многие из них предназначены для использования таким образом.
В любом случае, жду вашего мнения, спасибо.
Решение
Я бы посмотрел на это двумя способами:
запускать Лисп для каждого запроса
Таким образом, было бы гораздо лучше, если бы Lisp представлял собой сохраненный образ со всеми необходимыми библиотеками и загруженными данными.Но мне такой подход не кажется многообещающим.
запустите Lisp и позвольте интерфейсу (веб-браузеру, другому веб-серверу...) подключиться к нему
Таким образом, вы можете запустить сохраненное изображение или Lisp, который один раз загружает кучу данных и обслуживает запросы.
Мне нравится использовать сохраненные изображения/приложения в сценарии развертывания.Они быстро запускаются, содержат все необходимое программное обеспечение и не зависят от изменений библиотеки.
Поэтому может быть полезно предоставить предварительно настроенные образы Lisp, содержащие необходимое программное обеспечение, или позволить пользователю настроить и сохранить образ.