canoser
A python implementation of the LCS(Libra Canonical Serialization) for the Libra network.
Decision gist · record as of 2026-08-14
No, unless you are maintaining legacy Libra integration code written before 2020. The package is abandoned with no active maintenance, no security updates, and no guarantee of compatibility with modern Python versions or current Libra ecosystem evolution. For new projects, seek an actively maintained canonical serialization library.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.6 or above; package is no longer maintained, so compatibility with Python versions released after 2020 is not guaranteed.
- Installation is straightforward with no runtime dependencies.
- However, the package is abandoned—last release was 2020-04-02 and the repository was archived.
License · maintenance · safety
permissive license (permissive) — Licensed under MIT (permissive), so you may use, modify, and distribute the package freely in commercial or private projects with minimal restrictions.
last release 2020-04-02 (2325 days) · last repo commit 2021-04-20 · 13 stars · archived
0 known vulnerabilities (OSV.dev, 2026-08-14) · 76,320 downloads/mo, #14,635 on PyPI
Alternatives
Verify before relying
from canoser import Struct, Uint8, Uint64
class MyData(Struct):
_fields = [
('id', Uint64),
('bytes_field', [Uint8])
]
obj = MyData(id=1, bytes_field=[1, 2, 3])
serialized = obj.serialize()
deserialized = MyData.deserialize(serialized)- Whether the package works reliably with Python versions beyond those tested before 2020.
- Whether serialized output remains compatible with current Libra network validators or if the spec has evolved since 2020.
What it is and what it does
Canoser is a Python library that implements canonical serialization (LCS) for the Libra blockchain network. It allows you to define data structures by inheriting from base classes like Struct, RustEnum, and RustOptional, then automatically serialize and deserialize them in a deterministic byte format. This is essential in blockchain consensus where independent validators need to compute identical hashes of the same logical data, even when running different implementations.
The library supports complex nested structures including arrays, maps, tuples, enums with variants, and optional types—all mirroring Rust/Libra semantics. Once you define a structure's fields, serialization and deserialization happen automatically without manual encoding logic. However, the package has been abandoned since 2020-04-02 and its repository is archived, meaning it receives no updates, security patches, or compatibility fixes for newer Python releases.
Use it for
- Building Libra network clients or validators that need to serialize transaction arguments and account state in the canonical format.
- Comparing data structures across independent Libra implementations by hashing their canonical serializations.
- Defining and exchanging complex nested data types (enums, optional fields, arrays) that must serialize identically across different languages.
- Testing or prototyping Libra consensus logic in Python where canonical byte representation must match reference implementations.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No, unless you are maintaining legacy Libra integration code written before 2020.
The package is abandoned with no active maintenance, no security updates, and no guarantee of compatibility with modern Python versions or current Libra ecosystem evolution. For new projects, seek an actively maintained canonical serialization library.
Install
canoser on PyPI
Before you install
Installation is straightforward with no runtime dependencies. However, the package is abandoned—last release was 2020-04-02 and the repository was archived. No active maintenance means no security updates or compatibility fixes for modern Python versions beyond what was last tested.
Requires Python 3.6 or above; package is no longer maintained, so compatibility with Python versions released after 2020 is not guaranteed.
License in practice
Licensed under MIT (permissive), so you may use, modify, and distribute the package freely in commercial or private projects with minimal restrictions.
Quickstart
from canoser import Struct, Uint8, Uint64
class MyData(Struct):
_fields = [
('id', Uint64),
('bytes_field', [Uint8])
]
obj = MyData(id=1, bytes_field=[1, 2, 3])
serialized = obj.serialize()
deserialized = MyData.deserialize(serialized)
Verify before relying
- Whether the package works reliably with Python versions beyond those tested before 2020.
- Whether serialized output remains compatible with current Libra network validators or if the spec has evolved since 2020.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 2,325 days since the last release |
| Last repo commit | repository archived |
| First released | |
| Downloads | 76,320 / month, #14,635 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 :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: canoser-0.8.2-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 › “libra canonical serialization”
- canoserCanoser implements canonical serialization for Libra network data…
- canonicaljsonEncodes Python objects to canonical JSON with sorted keys, minimal…
- rfc8785Implements RFC 8785 (JSON Canonicalization Scheme) to produce…
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 poly-eip712-structs · cbor2 · mikeshardmind-base2048 · jcs · cobs · canonicaljson · oslo.serialization · serpent · dissect.cstruct · rfc8785