--- id: javaobj-py3 version: "0.6.1" license: Apache-2.0 license_treatment: permissive maintenance: active --- # javaobj-py3 — Module for serializing and de-serializing Java objects. License: permissive · Maintenance: active · Downloads: 900.2K/mo ## 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 above — verify before relying. Reads and writes Java objects serialized by ObjectOutputStream, converting them to and from Python equivalents with an API familiar to pickle and json users. 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 pip install javaobj-py3 uv add javaobj-py3 poetry add javaobj-py3 ## Installing javaobj-py3 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. 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) 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+. 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_current - Install friction: low - Maintenance: active - Downloads: 900.2K/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags java object deserialization, java serialization python, read java .ser files, java object unmarshalling, java to python objects, objectoutputstream parser, java serialized data, java-interop, serialization [View on SkillFed](https://skillfed.io/packages/javaobj-py3) · [View on PyPI](https://pypi.org/project/javaobj-py3/)