jni
Python bridge for the Java Native Interface.
Overview
| |package_bold| is a complete bridge between Python and Java JNI.
| It is an effort to allow python programs full access to Java JNI API.
PyPI record
_.
Documentation
_.
| |package_bold| is a lightweight Python package, based on the ctypes, or cffi library,
or Cython wrapper (currently under development).
| It is done by implementing whole JNI API functionality in a clean Python instead of C/C++.
| |package_bold| also contains a JNI wrapper in pure C based on Python C-API (currently under
development) - mainly for performance reasons.
What is |package|:
| |package_bold| is an effort to allow python programs full access to Java JNI API.
| This is achieved not through re-implementing Python, as Jython has done,
but rather through interfacing at the native level in both virtual machines.
Known Bugs/Limitations :
- Because of lack of JVM support, you cannot shutdown the JVM and then restart it.
Installation
Prerequisites:
-
Python 3.9 or higher
-
pip and setuptools
To install run:
.. parsed-literal::
python -m pip install --upgrade |package|
Development
Prerequisites:
Visit Development page
_.
Installation from sources:
clone the sources:
.. parsed-literal::
git clone |respository| |package|
and run:
.. parsed-literal::
python -m pip install ./|package|
or on development mode:
.. parsed-literal::
python -m pip install --editable ./|package|
License
| |copyright|
| Licensed under CC BY-NC-ND 4.0
| Licensed under proprietary License
| Please refer to the accompanying LICENSE file.
Authors
.. |package| replace:: jni
.. |package_bold| replace:: jni
.. |copyright| replace:: Copyright (c) 2004-2024 Adam Karpierz
.. |respository| replace:: https://github.com/karpierz/jni.git
.. _Development page: https://github.com/karpierz/jni
.. _PyPI record: https://pypi.org/project/jni/
.. _Documentation: https://jni.readthedocs.io/
Changelog
1.1.0b6 (2024-12-01)
- Fixes for embedded python.
- Java 17 is now the primary build/test environment.
- Add support for Python 3.13
- Drop support for Python 3.8
- jni.c and pvm.c (useful for embedded python apps) have been added.
- Unittest have been performed for much more JVMs.
- Tox configuration is now in native (toml) format.
- Setup fixes.
- Setup (dependencies) update.
1.0.0b22 (2024-01-26)
- Tox configuration has been moved to pyproject.toml
- Setup update (now based on tox >= 4.0).
- Add support for Python 3.10, 3.11 and 3.12
- Drop support for Python 3.7
- Add support for PyPy 3.9 and 3.10
- Copyright year update.
1.0.0b20 (2022-01-29)
- Drop support for Python 3.6
- Setup update.
1.0.0b18 (2021-10-13)
- dll_path argument of load() can also be type os.PathLike.
- Copyright year update.
- Setup update.
1.0.0b17 (2020-11-10)
- Add support for Python 3.9
- General update, improvements and cleanup.
- Setup update and improvements.
- Fixed docs setup.
1.0.0b7 (2020-03-08)
- Drop support for Python2
- Update of license info.
- Setup update.
1.0.0b4 (2019-07-10)
1.0.0b3 (2018-05-22)
- Update of the required setuptools version.
1.0.0b2 (2018-02-26)
- Improvement and simplification of setup and packaging.
1.0.0b1 (2017-11-18)
- First 'official' version.
0.1.1 (2005-10-05)