Metadata-Version: 2.1
Name: jni
Version: 1.1.0b5
Summary: Python bridge for the Java Native Interface.
Author: Adam Karpierz
Author-email: adam@karpierz.net
Maintainer: Adam Karpierz
Maintainer-email: adam@karpierz.net
License: Creative Commons BY-NC-ND 4.0 License ; https://creativecommons.org/licenses/by-nc-nd/4.0 ; Copyright (c) 2004-2024 Adam Karpierz, All Rights Reserved, Licensed under proprietary License
Project-URL: Homepage, https://pypi.org/project/jni/
Project-URL: Documentation, https://jni.readthedocs.io/
Project-URL: Download, https://pypi.org/project/jni/
Project-URL: Source, https://github.com/karpierz/jni
Project-URL: Issues, https://github.com/karpierz/jni/issues
Keywords: jni,jvm,jtypes,jt,jpype,jep,pyjnius,jpy,javabridge,pyjava,jcc,py4j,jython,java,pythonjava,rubicon-java
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: Free for non-commercial use
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: Polish
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Java
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries :: Java Libraries
Requires-Python: <4.0.0,>=3.9.0
Description-Content-Type: text/x-rst; charset=UTF-8
License-File: LICENSE
Requires-Dist: setuptools>=75.3.0
Requires-Dist: pkg-about>=1.2.2
Provides-Extra: cffi
Requires-Dist: cffi>=1.17.1; extra == "cffi"
Provides-Extra: cython
Requires-Dist: Cython>=3.0.11; extra == "cython"
Provides-Extra: doc
Requires-Dist: Sphinx>=7.4.7; extra == "doc"
Requires-Dist: sphinx-toolbox>=3.8.1; extra == "doc"
Requires-Dist: sphinx-tabs>=3.4.5; extra == "doc"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
Requires-Dist: sphinxcontrib-spelling>=8.0.0; extra == "doc"
Requires-Dist: sphinx-lint>=1.0.0; extra == "doc"
Requires-Dist: restructuredtext-lint>=1.4.0; extra == "doc"
Requires-Dist: nbsphinx>=0.9.5; extra == "doc"
Provides-Extra: test
Requires-Dist: deepdiff>=8.0.1; extra == "test"
Requires-Dist: rich>=13.9.4; extra == "test"

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

  * https://www.python.org/
  * Java 11 is a primary test environment.

+ pip and setuptools

  * https://pypi.org/project/pip/
  * https://pypi.org/project/setuptools/

To install run:

  .. parsed-literal::

    python -m pip install --upgrade |package|

Development
===========

Prerequisites:

+ Development is strictly based on *tox*. To install it run::

    python -m pip install --upgrade tox

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
=======

* Adam Karpierz <adam@karpierz.net>

.. |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.0b5 (2024-11-08)
--------------------
- Add support for Python 3.13
- Drop support for Python 3.8
- jni.c and pvm.c (useful for embedded python applications) have been added.
- Unittest have been performed for much more JVMs.
- 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)
--------------------
- Last release for Python2

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)
------------------
- Initial version.
