jcs
JCS - JSON Canonicalization
Decision gist · record as of 2026-08-14
Yes, if you need RFC 8785 compliant JSON canonicalization and can accept an abandoned package. The implementation is simple and has no dependencies, making it low-risk to integrate. However, verify that the algorithm meets your security requirements and test thoroughly, since there will be no upstream fixes for any future issues you discover.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction installation with no runtime dependencies.
- However, the package is abandoned—last release was 2022-04-10 and no commits since then.
- Use only if the RFC 8785 implementation is stable enough for your needs and you can maintain it yourself if issues arise.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive). You may use, modify, and distribute it freely in commercial and private projects, provided you include the license notice.
last release 2022-04-10 (1587 days) · last repo commit 2022-04-10 · 5 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,479,172 downloads/mo, #3,855 on PyPI
Alternatives
Verify before relying
pip install jcs
import jcs
data = jcs.canonicalize({"tag": 4})- Whether the RFC 8785 implementation handles all edge cases correctly for production use cases.
- Whether abandonment affects compatibility with modern Python versions beyond those listed (3.7–3.10).
What it is and what it does
JCS is a Python 3 implementation of RFC 8785 JSON canonicalization. It transforms JSON objects into a canonical form—a deterministic byte sequence that represents the same data structure identically every time, regardless of key order or whitespace. This is essential when you need to hash JSON data, verify digital signatures, or compare JSON structures byte-for-byte.
The package has no runtime dependencies and installs cleanly. It supports Python 3.6.2 and later. However, it has been abandoned since April 2022 with no active maintenance, so while the core algorithm is stable, you should verify that the implementation meets your security and compatibility requirements before relying on it in production.
Use it for
- Hashing JSON payloads to detect tampering or verify integrity in APIs and data pipelines.
- Creating deterministic signatures for JSON documents in blockchain or cryptographic applications.
- Comparing JSON structures for equality without being affected by formatting or key ordering.
- Normalizing JSON before storing it in a content-addressable system or deduplication cache.
- Implementing RFC 8785 compliance in systems that require standards-based JSON canonicalization.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need RFC 8785 compliant JSON canonicalization and can accept an abandoned package.
The implementation is simple and has no dependencies, making it low-risk to integrate. However, verify that the algorithm meets your security requirements and test thoroughly, since there will be no upstream fixes for any future issues you discover.
Install
jcs on PyPI
Before you install
Low friction installation with no runtime dependencies. However, the package is abandoned—last release was 2022-04-10 and no commits since then. Use only if the RFC 8785 implementation is stable enough for your needs and you can maintain it yourself if issues arise.
License in practice
Licensed under Apache-2.0 (permissive). You may use, modify, and distribute it freely in commercial and private projects, provided you include the license notice.
Quickstart
pip install jcs
import jcs
data = jcs.canonicalize({"tag": 4})
Verify before relying
- Whether the RFC 8785 implementation handles all edge cases correctly for production use cases.
- Whether abandonment affects compatibility with modern Python versions beyond those listed (3.7–3.10).
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.6.2 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 1,587 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,479,172 / month, #3,855 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: jcs-0.2.1-py3-none-any.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 › “deterministic json serialization”
- jcsCanonicalizes JSON according to RFC 8785, producing a deterministic…
- rfc8785Implements RFC 8785 (JSON Canonicalization Scheme) to produce…
- canonicaljsonEncodes Python objects to canonical JSON with sorted keys, minimal…
Give your agent the search over MCP, or paste the wish link into any chat.
More Cryptography packages
Certifi provides Mozilla's curated collection of root SSL certificates for Python applications to validate TLS hosts and verify certificate trustworthiness.
cryptography provides cryptographic recipes and low-level primitives for symmetric encryption, message digests, key derivation, and other common cryptographic algorithms in Python.
Pure-Python RSA encryption, decryption, signing, and key generation following PKCS#1 v1.5, with command-line and library interfaces.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
Provides Microsoft Entra ID token-based authentication for Azure SDK clients through a set of TokenCredential implementations that handle OAuth flows and managed identity support.
PyNaCl provides Python bindings to libsodium for digital signatures, secret-key and public-key encryption, hashing, message authentication, and password-based key derivation.
See also canonicaljson · rfc8785 · canoser · cbor · signedjson · condense-json · cbor2 · urlcanon · nicknames · py-multihash