serpyco-rs
Decision gist · record as of 2026-08-14
Yes. serpyco-rs is actively maintained, has no known vulnerabilities, and offers strong performance for dataclass serialization. The MIT license is permissive. Install friction is moderate due to compiled wheels, but pre-built binaries are available for common platforms and Python versions 3.10–3.14. Choose it if you need fast, schema-validated serialization of dataclasses for APIs or data transformation.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Medium install friction due to compiled wheels for multiple platforms and Python versions (3.10–3.14).
- Active maintenance with a recent release and no known vulnerabilities.
License · maintenance · safety
permissive license (permissive) — MIT license (permissive); you can use this freely in commercial and private projects with minimal restrictions.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 41 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 448,312 downloads/mo, #6,602 on PyPI
Alternatives
Verify before relying
import dataclasses
import serpyco_rs
@dataclasses.dataclass
class Example:
name: str
num: int
serializer = serpyco_rs.Serializer(Example)
result = serializer.dump(Example(name="foo", num=2))
print(result) # {'name': 'foo', 'num': 2}- Whether custom encoder/decoder support covers all common field types needed for your schema.
- Performance characteristics on deeply nested or very large dataclass hierarchies.
- Compatibility with third-party dataclass libraries beyond standard library dataclasses.
What it is and what it does
serpyco-rs is a serialization library for Python dataclasses that converts objects to and from built-in Python types (dict, list, etc.) or directly to/from bytes via JSON or MessagePack codecs. It analyzes dataclass field types at serializer creation time and supports a broad range of standard types—lists, tuples, optionals, enums, UUIDs, dates, decimals, unions, and nested dataclasses—along with validation of input data during deserialization.
The library is implemented in Rust for speed and offers both a simple dict-based API (dump/load) and a codec-based API for direct bytes handling. It includes features like field aliasing, custom encoders/decoders, JSON Schema generation, and query-string deserialization with type coercion. The main use case is serializing objects for APIs, though it works for any object-to-type transformation task.
Use it for
- Serialize dataclass instances to JSON for REST API responses without intermediate dict conversion.
- Deserialize and validate incoming JSON payloads against a dataclass schema in a web framework.
- Convert Python objects to MessagePack for efficient binary storage or network transmission.
- Generate JSON Schema specifications from dataclass definitions for API documentation.
- Deserialize query string parameters into typed dataclass instances with automatic coercion.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
serpyco-rs is actively maintained, has no known vulnerabilities, and offers strong performance for dataclass serialization. The MIT license is permissive. Install friction is moderate due to compiled wheels, but pre-built binaries are available for common platforms and Python versions 3.10–3.14. Choose it if you need fast, schema-validated serialization of dataclasses for APIs or data transformation.
Install
serpyco-rs on PyPI
Before you install
Medium install friction due to compiled wheels for multiple platforms and Python versions (3.10–3.14). Active maintenance with a recent release and no known vulnerabilities. Lightweight runtime dependencies (attributes-doc, typing-extensions) keep the footprint small.
Requires Python 3.10 or later.
License in practice
MIT license (permissive); you can use this freely in commercial and private projects with minimal restrictions.
Quickstart
import dataclasses
import serpyco_rs
@dataclasses.dataclass
class Example:
name: str
num: int
serializer = serpyco_rs.Serializer(Example)
result = serializer.dump(Example(name="foo", num=2))
print(result) # {'name': 'foo', 'num': 2}
Verify before relying
- Whether custom encoder/decoder support covers all common field types needed for your schema.
- Performance characteristics on deeply nested or very large dataclass hierarchies.
- Compatibility with third-party dataclass libraries beyond standard library dataclasses.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 2 packagesattributes-doctyping-extensions |
| Maintenance | Actively maintained 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 448,312 / month, #6,602 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Rust |
Evidence: serpyco_rs-1.22.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; serpyco_rs-1.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; serpyco_rs-1.22.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; serpyco_rs-1.22.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; serpyco_rs-1.22.0-cp310-cp310-manylinux_2_17_ppc64.manylinux2014_ppc64.whl; serpyco_rs-1.22.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; serpyco_rs-1.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; serpyco_rs-1.22.0-cp310-cp310-win_amd64.whl; serpyco_rs-1.22.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; serpyco_rs-1.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; serpyco_rs-1.22.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; serpyco_rs-1.22.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; serpyco_rs-1.22.0-cp311-cp311-manylinux_2_17_ppc64.manylinux2014_ppc64.whl; serpyco_rs-1.22.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl; serpyco_rs-1.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; serpyco_rs-1.22.0-cp311-cp311-win_amd64.whl; serpyco_rs-1.22.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; serpyco_rs-1.22.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; serpyco_rs-1.22.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; serpyco_rs-1.22.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.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 › “dataclass serialization”
- serpyco-rsSerializes and deserializes Python dataclasses to/from dictionaries,…
- dataclass-wizardDataclass Wizard converts Python dataclasses to and from JSON, YAML,…
- pyserdeSerialize and deserialize Python dataclasses to and from JSON, YAML,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also databind.json · pyserde · databind · srsly · jsons · databind.core · cattrs · msgpack-python · djangorestframework-dataclasses · jax-dataclasses