Py4J 0.10.2 has just been released on PyPI, Maven Central, and bintray (p2 eclipse repository).
This is a backward-compatible release with a focus on building a stronger test suite.
- Both sides: added memory management options to disable garbage collection. This is useful if you create many short-lived py4j client/server pairs.
- Both sides: fixed ClientServer to allow users to create multiple ClientServer instances. Thanks to @jonahkichwacoders for reporting the bug and helping diagnosing the issue.
- Both sides: it is now possible to specify a python entry point when creating a CallbackServer. The CallbackClient on the Java side can then access the python entry point and drive the conversation. See the Advanced Topics guide for more information.
- Both sides: fixed memory leak issue with ClientServer and potential deadlock issue by creating a memory leak test suite.
- Both sides: fixed retry logic by only retrying if an error occurs on write (send command). Thanks to @jonahkichwacoders for raising the issue.
- Both sides: the assemble gradle task, the Java test suite and the Python test suite now runs correctly on Windows.
- Java side: added GatewayServerBuilder and ClientServerBuilder to ease the creation of these instances with many options. Thanks to @jonahkichwacoders.
- A link to the contributing guide now appears when opening pull requests or issues.
- Github 0.10.2 milestone .
This was a difficult release to make because I had to track down and then work around many subtle variations between the various versions of Python, Java, Windows, Linux, and Mac OSX. I’m also trying to clean up the code as much as possible for a 1.0 release.
If you did not already see it, I published a blog post on the roadmap to 1.0.
The next release will focus on binary transfer (e.g., transferring a numpy array) and I’ll need your help in shaping the API. I’ll post on this mailing list when I’m ready 🙂
As always, this release has been made possible by the generous contributions from many users. Every bug reports, patches, pull requests, ideas or help on the mailing list is greatly appreciated.