{"id":355,"library":"jiter","title":"jiter","description":"jiter is a fast iterable JSON parser for Python, currently at version 0.13.0, released on February 2, 2026. It is actively maintained with a release cadence of approximately every 2-3 months.","status":"active","version":"0.13.0","language":"python","source_language":"en","source_url":"https://github.com/pydantic/jiter","tags":["JSON parsing","Python","performance","jiter"],"install":[{"cmd":"pip install jiter","lang":"bash","label":"Install jiter"}],"dependencies":[{"reason":"Provides data validation and settings management using Python type annotations.","package":"pydantic","optional":true}],"imports":[{"note":"Ensure correct import path to access the from_json function.","symbol":"from_json","correct":"from jiter import from_json"}],"quickstart":{"code":"import os\nfrom jiter import from_json\n\njson_data = b'{\"name\": \"John\", \"age\": 30}'\nparsed_data = from_json(json_data)\nprint(parsed_data)  # Output: {'name': 'John', 'age': 30}","lang":"python","description":"A simple example demonstrating how to parse JSON data using jiter."},"warnings":[{"fix":"Update your Rust dependencies to be compatible with PyO3 0.28.","message":"In version 0.13.0, PyO3 was bumped to 0.28, which may require adjustments in Rust bindings if used.","severity":"breaking","affected_versions":"0.13.0"},{"fix":"Use the official 'jiter' package for continued support and updates.","message":"The 'jiter-pupy' package is a pure Python implementation of jiter and is no longer maintained.","severity":"deprecated","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-05-12T13:15:16.524Z","next_check":"2026-06-26T00:00:00.000Z","problems":[{"fix":"Install the package using pip: `pip install jiter`","cause":"The 'jiter' package is not installed in the current Python environment or is not accessible to the running script.","error":"ModuleNotFoundError: No module named 'jiter'"},{"fix":"Ensure you have the Rust toolchain installed (e.g., `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`). If using poetry, try `poetry add jiter --build=venv` or manually install with pip if the environment is complex. For some environments like Chaquopy, specific `openai` versions might resolve conflicts.","cause":"This error often occurs during installation when `pip` or `poetry` cannot compile the underlying Rust extension for 'jiter', possibly due to missing build tools (like Rust toolchain or C compiler) or environment-specific issues (e.g., specific Python versions or operating systems).","error":"ERROR: Failed to build 'jiter' when installing build dependencies"},{"fix":"Provide complete and valid JSON bytes to `jiter.from_json()`, or set `partial_mode=True` to allow parsing of incomplete JSON and discard the trailing incomplete string, or `partial_mode='trailing-strings'` to include it. \nExample:\n```python\nimport jiter\n# Fix: Provide complete JSON\ncomplete_json = b'{\"key\": \"value\"}'\nparsed_data = jiter.from_json(complete_json)\n\n# Alternative: Allow partial JSON\npartial_json = b'{\"key\": \"incomplete st'\nparsed_data_partial = jiter.from_json(partial_json, partial_mode=True)\n```","cause":"The `jiter.from_json()` function was called with JSON bytes that are syntactically incomplete, and `partial_mode` was set to `False` (the default), which requires well-formed JSON.","error":"ValueError: JSON input is incomplete"},{"fix":"Ensure the JSON input does not contain objects with duplicate keys, or set `catch_duplicate_keys=False` to allow `jiter` to silently handle (typically by using the last encountered value) duplicate keys. \nExample:\n```python\nimport jiter\n# Fix: Remove duplicate key\nvalid_json = b'{\"key1\": \"value1\", \"key2\": \"value2\"}'\nparsed_data = jiter.from_json(valid_json, catch_duplicate_keys=True)\n\n# Alternative: Allow duplicate keys (last one wins by default if not caught)\nduplicate_key_json = b'{\"key\": \"value1\", \"key\": \"value2\"}'\nparsed_data_allowed = jiter.from_json(duplicate_key_json, catch_duplicate_keys=False)\n```","cause":"The `jiter.from_json()` function encountered a JSON object containing duplicate keys, and the `catch_duplicate_keys` option was set to `True`.","error":"ValueError: Duplicate key found"}],"ecosystem":"pypi","meta_description":null,"install_score":80,"install_tag":"verified","quickstart_score":80,"quickstart_tag":"verified","pypi_latest":null,"install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"19.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"20.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"12.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"12.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"18.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"19M"}]},"quickstart_checks":{"last_tested":"2026-04-23","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}}