[ANN] JPE 2.0 The Java-Python Extension

Frederic Giacometti frederic.giacometti at arakne.com
Tue Feb 26 21:18:09 EST 2002


This is the official announcement of the second version of JPE
(CVS release tag jpe_2_0_0).

JPE (The Java-Python Extension) is a production-grade seamless integration
of Python and Java.
JPE lets you call Java objects and classes from Python, and vice-versa,
within the same process space. JPE is reentrant (cross-language callbacks),
and supports multi-threading concurently in Java and Python.

The reference web site for JPE is http://jpe.sourceforge.net


As compared to its first release:

1) The build system of JPE has been completely reengineered,
and is based on a new build library (libplus).
In this new version:

  - Java and python are auto-detected from the command line,
and everything else is derived from there (Java libraries, library
paths...).

  - libplus generated its own makefiles, and runtime environment
(env variables) for the build and test phases; so there is no need
to set-up anything

  - everything is now plateform-independant, and the same scripts
are used on Win32 and posix (no more GNU make / cygwin make required on
windows)

  - JPE has been ported to posix environments.
However, a shared python library is required on these platforms.
You can build your onw, or use the branched version of Python 2.1,
named 'pythonx', which is provided for these purposes.

  - JPE is distributed in source form from CVS. Substantial efforts
have been invested to provide a config and build environment
that makes it straightforward to configure, build from source,
and test multi-component, multi-platform software systems.
Hopefully, that can be one step ahead from the current
autoconf or distutil systems.
Easily extensible to support arbitrary software components and tools,
libplus currently supports C, C++, Python, Java, and swig wrappers.
Libplus generates configuration-specific makefiles that chain software
component dependencies together, and provides runtime software/tool
configuration information.
Litteratly, this is an 'open-source' project :))


2) New capabilities of JPE, for the 2d release:

- Java bean support: Jbean properties are accessed as regular python
attributes

- Cross-language native array access: JPE integrates the bufarray python
extension type; a layer on top of the python buffer interface
that provides type-safe access to contiguous fixed-length C arrays
(actually, 99% of the situations in scientific C or Fortran libraries).
This integration permits to safely access arrays by shared memory
reference between Java, Python, and C; while hidding the native memory
format.


3) Acknowledgements:

Arakné, and The Molecular Graphics Laboratory at The Scripps Research
Institute.


Benevolently yours,

Frédéric Giacometti
fred at arakne.com





More information about the Python-list mailing list