Можно ли запустить серверный javascript из экземпляра * Python * Google App Engine?
A много questions были заданы вопросы и ответили на вопрос о запуске javascript на стороне сервера в Google App Engine, но все ответы касаются экземпляров Java, чтобы использовать Java-JS-интерпретаторы, такие как Rhino, Rhino для Webapps, и др.
Есть ли способ выполнить код javascript на стороне сервера на примере Python GAE? Я думаю что-то точно в соответствии с pyv8, но с поддержкой App Engine (что, я думаю, будет означать реализацию чистого python переводчика).
Единственное решение, которое я могу предложить на данный момент, - использовать какой-то грубый взлом для запуска Java и Python GAE-экземпляра бок о бок (через разные версии), чтобы они могли разговаривать с одним и тем же хранилищем данных, пусть Java-экземпляр размещает JS-код и использует API для разговора. Не очень привлекательно.
Не нужно вовлекаться во все "это необязательно, вы не должны этого делать". Я знаю, что это не идеально, и мне просто интересно, если это можно сделать.
Ответы
Ответ 1
Насколько я могу найти: Нет
Я немного поработал, но кажется, что никто не пытался реализовать чистый Javascript-движок Python, и я не могу винить их: это будет огромная работа для очень немногих вариантов использования (к сожалению, ваш - один из них). Несколько проектов: Grailbrowser и Pybrowser - имеют код Python для визуализации HTML, поэтому в один прекрасный день можно будет запустить javascript, но он даже не начался, и ни один из них не выглядит в активной разработке.
Самый вероятный способ, который это когда-либо случится, - это то, что Google будет предлагать виртуальную машину Parrot (которая может запускать различные динамические языки) в Appengine. Это крутая идея, но я не задерживаю дыхание.
Ответ 2
Что может быть сделано для запуска Jython (и Rhino) в экземпляре Java. Конечно, тогда вам придется обращаться к любым приложениям через API Java, а не с Python, что было бы уродливо.
Ответ 3
На самом деле это действительно можно сделать, используя AppEngineJs или ESXX:
http://www.appenginejs.org/
http://esxx.blogspot.com/2009/06/esxx-on-google-app-engine.html
Ответ 4
В настоящее время я пытаюсь решить эту проблему с PyJON
http://code.google.com/p/pyjon/
Кажется, что это чистый синтаксический анализатор JavaScrit Python - интерпретатор.