javaobj-py3
Module for serializing and de-serializing Java objects.
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no known vulnerabilities, installs with low friction, and fills a genuine niche: Java object deserialization is not a common need, but when it is required, few alternatives exist. The permissive Apache-2.0 license and broad Python version support (2.7 through 3.14) make it safe to adopt. Choose v1 or v2 for older Python versions, v3 for new projects on Python 3.12+.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a Java-serialized binary file (.ser); v3 parser requires Python 3.12+, while v1 and v2 work on Python 2.7 and 3.4+.
- Low friction: pure Python wheel with only enum34 and typing as runtime dependencies (both backports for older Python versions).
- Repository is active with a recent release and 84 stars; maintenance status is current.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
last release 2026-08-12 (2 days) · last repo commit 2026-08-12 · 84 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 900,200 downloads/mo, #4,777 on PyPI
Alternatives
Verify before relying
import javaobj
with open("obj.ser", "rb") as fd:
pobj = javaobj.loads(fd.read())
print(pobj)- Whether numpy integration (mentioned for v2) is automatically available or requires separate installation.
- Performance characteristics when parsing large or deeply nested Java object graphs.
- Real-world compatibility with modern Java serialization formats and custom Java classes.
What it is and what it does
javaobj-py3 is a library for reading and writing Java objects serialized in Java's ObjectOutputStream format. It provides three parser implementations (v1, v2, v3) with different trade-offs: v1 offers basic marshalling and compatibility back to Python 2.7; v2 adds object transformers and numpy array support for Python 3.4+; v3 is a full rewrite for Python 3.12+ with complete read and write support and stricter safety limits. The library automatically converts Java collections to Python equivalents (HashMap to dict, ArrayList to list) and handles GZipped streams transparently.
The package exposes a familiar API modeled on pickle and json, so developers accustomed to those modules will recognize the load/loads pattern. It is primarily used when Python code needs to interoperate with Java systems that exchange data via serialized objects—a common pattern in enterprise environments. The choice of parser depends on your Python version and whether you need marshalling (writing) capability.
Use it for
- Deserialize Java objects from legacy enterprise systems into Python for data analysis or migration.
- Read Java serialized data files (.ser) produced by Java applications without reimplementing the format.
- Interoperate with Java microservices or batch jobs that output ObjectOutputStream-serialized payloads.
- Convert Java collections (HashMap, ArrayList, etc.) to native Python types for downstream processing.
- Implement bidirectional data exchange with Java systems using v3's full read-write support on Python 3.12+.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no known vulnerabilities, installs with low friction, and fills a genuine niche: Java object deserialization is not a common need, but when it is required, few alternatives exist. The permissive Apache-2.0 license and broad Python version support (2.7 through 3.14) make it safe to adopt. Choose v1 or v2 for older Python versions, v3 for new projects on Python 3.12+.
Install
javaobj-py3 on PyPI
Before you install
Low friction: pure Python wheel with only enum34 and typing as runtime dependencies (both backports for older Python versions). Repository is active with a recent release and 84 stars; maintenance status is current.
Requires a Java-serialized binary file (.ser); v3 parser requires Python 3.12+, while v1 and v2 work on Python 2.7 and 3.4+.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
import javaobj
with open("obj.ser", "rb") as fd:
pobj = javaobj.loads(fd.read())
print(pobj)
Verify before relying
- Whether numpy integration (mentioned for v2) is automatically available or requires separate installation.
- Performance characteristics when parsing large or deeply nested Java object graphs.
- Real-world compatibility with modern Java serialization formats and custom Java classes.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesenum34typing |
| Maintenance | Actively maintained 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 900,200 / month, #4,777 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaOperating System :: OS IndependentProgramming Language :: Python :: 2.7Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules |
Evidence: javaobj_py3-0.6.1-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “java object deserialization”
- javaobj-py3Reads and writes Java objects serialized by ObjectOutputStream,…
- py4jPy4J enables Python programs to dynamically call Java objects and…
- PyByteBufferPyByteBuffer provides Java ByteBuffer-style buffer manipulation for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also jsonpickle · databind.json · databind · pemja · py4j · numpyencoder · py-serializable · databind.core · pyjls · pyghidra