Hi, Hope I'm mailing the right place. I'm hoping to use pyjs in a project of mine but there's still some questions I have that I'm a bit confused about.
First, to give you an idea of where I'm coming from and what my needs are: I'm working on an open source webgame engine for Python in Django. The engine is designed for tile-based games (games like civ, dungeon crawl stone soup, or puzzles), with an emphasis on allowing multiplayer play. A key feature of the engine is that it will do automatic lag compensation by automagically mirroring the game command code (a file with a bunch of python functions) and database locally (django models; the models interface is handled seperately but any custom methods need to be translated) on the client side, and then syncing with the server via ajax. In both cases, the functions in question consist mostly of fetching data from the database, manipulating it, and storing it back. The "fetching" and "storing" parts are handled separately; our concern here is only with the manipulation part. Our current attempt to do this uses the empythoned project (https://github.com/replit/empythoned) to run python in the browser, which is actually Cpython compiled into javascript by emscripten and run in a web worker. This works really great actually, with a flawless local emulation of python, except that... its far too slow. An empty loop over a range of 30k will take about a half a second on a decent machine. =[ So, its nowhere near as extensible as we'd like. So, our next hope is pyjs. The idea here is instead of mirroring the python game code on the client side directly, we'll translate it into javascript instead. However, I'm at a loss of not only how to evaluate this possibility but even where to begin, lol. As far as I can tell, the pyjs project has both a python->javascript translator as well as some sort of widget interface compatible with GWT. The docs say that the translator is stand-alone, but all documentation examples seem to use the widget stuff. (we have our own UI already set up built with jQuery that we're happy with, so we're only interested in the python -> javascript translation part of pyjs). Something called 'pyjampiler' seems to be for stand-alone translation, but there is no documentation (that I can find) for it. I can not get the one from the github to work, although I was able to compile the example in this older version of pyjampiler I found here: http://www.smallbulb.net/pyjampiler However, this one seems critically out of date compared to the one in the github. So, my questions: 1.) Can I infact use the pyjs translator stand-alone without the widget stuff? If so, how do I use it? Do I do it with pyjampiler or some other way? 2.) How good is the translator? Is it basically production-ready, or are there some issues? I could help fix the issues if there are any significant ones beyond what I found on the Migration guide wiki page. (the limitations there being perfectly fine with me - my real worst fear is getting complaints about games that function correctly without lag compensation turned on but then are bugged (or can't compile) with it turned on.) 3.) How interfacable with normal javascript is the output of pyjs? Can I, for instance, construct an array with a simple for loop: var a = new Array(); for (var i=0; i<10; i++) { a[i] = i; } and then pass that directly to a function that was created with pyjs? I'm guessing not, but is there some kind of interface that will translate a javascript object to a pyjs javascript object (even via JSON is fine)? Anyways, apologies if I missed the answer to any of this in the docs somewhere, but I would really appreciate any help you got! Thanks, Joe