{"categories":[{"label":"Software Development","url":"https://skillfed.io/packages/category/software-development/7"}],"enrichment":{"capability":"Serpent serializes Python objects to human-readable, safe literals that can be deserialized using ast.literal_eval(), with support for uuid, datetime, array, and decimal types.","skillfed_tags":["serialization","cross-language","safe-deserialization"],"use_cases":["Serialize configuration or data files that humans need to read and edit while maintaining type safety.","Exchange structured data between Python, Java, and .NET services without security risks of pickle.","Store application state or cache data in a format that survives code changes and is auditable.","Debug and log complex object structures in a readable, executable format.","Build a lightweight data protocol for inter-process communication where JSON's type limitations are insufficient."],"what_it_does":"Serpent is a serialization library that converts Python objects into human-readable, executable Python source code (literals) that can be safely deserialized using ast.literal_eval(). Unlike pickle, which has known security risks, serpent produces text that is safe to transport over networks or store in files because it only recreates literal values\u2014no arbitrary code execution occurs during deserialization.\n\nThe library extends basic repr() and literal_eval() by adding automatic serialization for types like uuid, datetime, array, and decimal, encoding bytes as base-64, and allowing pretty-printed output with comments. It's designed for scenarios where human readability, safety, and cross-platform compatibility matter more than performance. Serpent also has implementations in Java and .NET, enabling data exchange between Python, Java, and C# ecosystems.","worth_installing":"Yes, if you need safe, human-readable serialization and can accept the constraint that circular object references are not supported. The zero-dependency installation, active maintenance, permissive license, and lack of known vulnerabilities make it a solid choice for configuration, logging, and cross-language data exchange. Not suitable if you need binary efficiency or must serialize arbitrary object graphs."},"id":"serpent","links":{"html":"https://skillfed.io/packages/serpent","md":"https://skillfed.io/packages/serpent.md","pypi":"https://pypi.org/project/serpent/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-05-30","license_spdx":null,"license_treatment":"permissive","name":"serpent","python_support":"supports_current","summary":"Serialization based on ast.literal_eval"},"popularity":{"monthly_downloads":663667,"position":5435,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"1.43"}
