This looks really amazing. Thanks for contributing it! Best, --Tim
On Wednesday, June 03, 2015 10:10:45 AM Yuri D'Elia wrote: > Hi everyone, > > I'm announcing the availability of a new package for cross-language > interoperability called "Polyglot", already available as a registered > package: https://github.com/wavexx/Polyglot.jl > > Polyglot allows to call a remote function in a supported language with > automatic serialization of basic types. It also allows to export local > Julia functions to the remote system with the same method (that is, the > remote system can call back Julia with regular functions). Local/remote > functions can also call each-other recursively without any limitation. > > For a brief example, please see: > > http://www.thregr.org/~wavexx/software/Polyglot.jl#overview > > The currently supported languages are PHP, Perl, Python (2/3/PyPy) and > JavaScript (Node.js). A Common Lisp (sbcl/clisp) and Julia backends are > also in the works. > > I'm actively looking for feedback, especially about the interface of the > module. I'd love to introduce some uniformity and reuse generic method > names if possible. Please keep that in mind: the package is stable, but > I'll shuffle things around in the beginning if needed. > > For those interested, "Polyglot" spawns long-lived coprocesses which > communicate through a simple serial protocol. While not being as > efficient as a dl-opened interpreter, this method allows to have > multiple interpreters running at the same time, with different versions > and potentially running on different systems. When the Julia backend > will be ready, Polyglot will have many similarities to current's Julia > parallel/multiprocessing interface in both API and design. > > Polyglot is almost a direct port of the Python "Bond" package > (https://pypi.python.org/pypi/python-bond). In fact, it shares the same > driver infrastructure and I currently recommend to read through it's > practical examples and language support section (at least until I finish > writing the remaining documentation). > > Please share your ideas!
