dataclasses-jsonschema
JSON schema generation from dataclasses
Decision gist · record as of 2026-08-14
Yes, with conditions. The package is stable and has low install friction, but the abandoned maintenance status (last release October 2022, repository archived August 2023) means no active support for emerging Python versions or security issues. Install if your schema generation needs are straightforward and you do not require ongoing maintenance; consider pydantic or marshmallow if you need active development or broader feature coverage.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with a pure-Python wheel.
- The project is in maintenance mode with only urgent bugfixes; the repository was archived after the last commit in 2023-08-19, over 1387 days ago.
License · maintenance · safety
MIT (permissive) — MIT license is permissive and imposes no significant restrictions on use or redistribution.
last release 2022-10-27 (1387 days) · last repo commit 2023-08-19 · 168 stars · archived
0 known vulnerabilities (OSV.dev, 2026-08-14) · 196,241 downloads/mo, #9,791 on PyPI
Alternatives
Verify before relying
from dataclasses import dataclass
from dataclasses_jsonschema import JsonSchemaMixin
@dataclass
class Point(JsonSchemaMixin):
x: float
y: float
Point.json_schema() # Returns schema dict
Point(x=3.5, y=10.1).to_dict() # Serialize
Point.from_dict({'x': 3.14, 'y': 1.5}) # Deserialize- Whether maintenance-mode status and 1387-day gap since last release poses compatibility risks with modern Python versions
- Performance characteristics compared to actively maintained alternatives like pydantic
What it is and what it does
Dataclasses-jsonschema is a lightweight library that converts Python 3.7+ dataclasses into JSON Schema definitions. It generates schemas compatible with draft-04, draft-06, Swagger 2.0, and OpenAPI 3 formats, and provides methods to serialize dataclass instances to dictionaries, deserialize dictionaries back into dataclass instances, and validate data against the generated schema.
The library is designed as a lighter-weight alternative to marshmallow and pydantic, requiring only dataclasses, jsonschema, python-dateutil, and typing-extensions as runtime dependencies. It includes optional extras for performance improvements (fastjsonschema for validation, fastuuid for UUID handling, ciso8601 for date parsing) and integrates with apispec for automatic OpenAPI/Swagger documentation generation. However, the project entered maintenance mode and is no longer actively developed, with the repository archived since August 2023.
Use it for
- Generate OpenAPI/Swagger documentation automatically from dataclass definitions in Flask or other web frameworks
- Validate incoming JSON data against a schema derived from a dataclass structure before processing
- Serialize and deserialize dataclass instances to/from JSON with built-in type checking
- Create reusable schema definitions for APIs without writing JSON Schema by hand
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with conditions.
The package is stable and has low install friction, but the abandoned maintenance status (last release October 2022, repository archived August 2023) means no active support for emerging Python versions or security issues. Install if your schema generation needs are straightforward and you do not require ongoing maintenance; consider pydantic or marshmallow if you need active development or broader feature coverage.
Install
dataclasses-jsonschema on PyPI
Before you install
Low install friction with a pure-Python wheel. The project is in maintenance mode with only urgent bugfixes; the repository was archived after the last commit in 2023-08-19, over 1387 days ago.
License in practice
MIT license is permissive and imposes no significant restrictions on use or redistribution.
Quickstart
from dataclasses import dataclass
from dataclasses_jsonschema import JsonSchemaMixin
@dataclass
class Point(JsonSchemaMixin):
x: float
y: float
Point.json_schema() # Returns schema dict
Point(x=3.5, y=10.1).to_dict() # Serialize
Point.from_dict({'x': 3.14, 'y': 1.5}) # Deserialize
Verify before relying
- Whether maintenance-mode status and 1387-day gap since last release poses compatibility risks with modern Python versions
- Performance characteristics compared to actively maintained alternatives like pydantic
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagespython-dateutiljsonschemadataclassestyping-extensions |
| Maintenance | Abandoned 1,387 days since the last release |
| Last repo commit | repository archived |
| First released | |
| Downloads | 196,241 / month, #9,791 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries |
Evidence: dataclasses_jsonschema-2.16.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
An agent finds packages by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language. Give your agent the search over MCP.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also apischema · hologram · fastjsonschema · dataclasses-avroschema · typed-json-dataclass · py-avro-schema · desert · datamodel-code-generator · dataclasses · jsoncompat