{"library":"serpyco-rs","title":"serpyco-rs: High-Performance Dataclass Serialization and Validation","description":"Serpyco-rs is a high-performance Python library for serializing and deserializing dataclasses, inspired by `serpyco`. It leverages Rust for speed and provides features like data validation, JSON Schema generation (Draft 2020-12), and custom encoder/decoder support. It supports Python 3.9+ and maintains a frequent release cadence, with version 1.20.0 being the latest as of March 2026.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install serpyco-rs"],"cli":null},"imports":["from serpyco_rs import Serializer","from dataclasses import dataclass"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import dataclasses\nfrom serpyco_rs import Serializer\n\n@dataclasses.dataclass\nclass User:\n    id: int\n    name: str\n    email: str\n    is_active: bool = True\n\n# Create a serializer for the User dataclass\nuser_serializer = Serializer(User)\n\n# Create a User instance\nuser_instance = User(id=1, name=\"Alice\", email=\"alice@example.com\")\n\n# Serialize the dataclass instance to a dictionary\ndumped_data = user_serializer.dump(user_instance)\nprint(f\"Dumped data: {dumped_data}\")\n# Expected: {'id': 1, 'name': 'Alice', 'email': 'alice@example.com', 'is_active': True}\n\n# Load data from a dictionary into a dataclass instance\nloaded_data = {'id': 2, 'name': 'Bob', 'email': 'bob@example.com', 'is_active': False}\nuser_from_dict = user_serializer.load(loaded_data)\nprint(f\"Loaded instance: {user_from_dict}\")\n# Expected: User(id=2, name='Bob', email='bob@example.com', is_active=False)\n\n# Generate JSON Schema for the dataclass\njson_schema = user_serializer.json_schema()\nprint(f\"JSON Schema: {json_schema}\")","lang":"python","description":"This example demonstrates how to define a dataclass, create a serializer for it, and then use the serializer to dump a dataclass instance to a dictionary, load a dictionary into a dataclass instance, and generate a JSON Schema for the defined structure.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"1.20.0","pypi_latest":"1.20.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":1.8,"avg_import_s":0.12,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"serpyco-rs","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"serpyco-rs","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.08,"mem_mb":3.4,"disk_size":"20M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"serpyco-rs","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"serpyco-rs","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.16,"mem_mb":3.4,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"serpyco-rs","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"serpyco-rs","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.16,"mem_mb":3.1,"disk_size":"14M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"serpyco-rs","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"serpyco-rs","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.13,"mem_mb":3,"disk_size":"14M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"serpyco-rs","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"serpyco-rs","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.09,"mem_mb":3.2,"disk_size":"20M"}]}}