{"library":"protobuf3-to-dict","title":"Protobuf 3 to Python Dict Converter","description":"A Python library designed to convert Protocol Buffer 3 messages into standard Python dictionaries and vice-versa. It is particularly useful as an intermediate step for serialization tasks, such as converting Protobuf messages to JSON. The library is a Python 3 adaptation of an earlier project and currently maintains version 0.1.5, with infrequent updates.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install protobuf3-to-dict"],"cli":null},"imports":["from protobuf_to_dict import protobuf_to_dict","from protobuf_to_dict import dict_to_protobuf"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from google.protobuf.timestamp_pb2 import Timestamp\nfrom protobuf_to_dict import protobuf_to_dict, dict_to_protobuf\nimport datetime\n\n# Create a Protobuf Timestamp message\ndt_obj = datetime.datetime.now(datetime.timezone.utc)\ntimestamp_msg = Timestamp()\ntimestamp_msg.FromDatetime(dt_obj)\n\nprint(f\"Original Protobuf Timestamp: {timestamp_msg}\")\n\n# Convert Protobuf message to Python dictionary\ndata_dict = protobuf_to_dict(timestamp_msg)\nprint(f\"Converted dictionary: {data_dict}\")\n\n# Convert dictionary back to Protobuf message\nnew_timestamp_msg = dict_to_protobuf(Timestamp, data_dict)\nprint(f\"Converted back to Protobuf: {new_timestamp_msg}\")\n\n# Verify conversion\nassert new_timestamp_msg.seconds == timestamp_msg.seconds\nassert new_timestamp_msg.nanos == timestamp_msg.nanos\nprint(\"Conversion verified successfully!\")","lang":"python","description":"This quickstart demonstrates converting a `google.protobuf.Timestamp` message to a Python dictionary and back. For custom Protobuf messages, you would first need to compile your `.proto` files into Python classes using the `protoc` compiler.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.1.5","pypi_latest":"0.1.5","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.8,"avg_import_s":0.02,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1,"disk_size":"20.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.01,"mem_mb":1.1,"disk_size":"22M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1,"disk_size":"23.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.03,"mem_mb":1.1,"disk_size":"25M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":0.7,"disk_size":"13.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.3,"import_time_s":0.02,"mem_mb":0.8,"disk_size":"15M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":0.9,"disk_size":"13.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":0.02,"mem_mb":0.8,"disk_size":"14M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.4,"disk_size":"20.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"protobuf3-to-dict","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":0.03,"mem_mb":1.4,"disk_size":"21M"}]}}