{"categories":[{"label":"Software Development","url":"https://skillfed.io/packages/category/software-development/4"}],"enrichment":{"capability":"Generates typed Python record classes and a reader from Avro schemas, replacing Avro's default dict-based approach with concrete classes that provide IDE type hints and schema validation.","skillfed_tags":["code-generation","avro","schema-driven"],"use_cases":["Generate strongly-typed Python classes from Avro schemas to catch field errors at development time rather than runtime.","Build data pipelines where IDE autocomplete and type hints improve developer velocity when working with Avro records.","Create protocol-based request/response classes for Avro RPC services with full type safety.","Serialize and deserialize Avro data files while maintaining schema validation through generated reader classes.","Support logical types in Avro records with automatic conversion to Python types like date and decimal."],"what_it_does":"Avro-gen3 is a code generator that converts Avro schemas and protocols into concrete Python record classes with type hints and IDE support. Instead of working with untyped dictionaries (as the standard Avro library does), it wraps the Avro DatumReader to return instances of generated classes with typed properties for each schema field. The generator creates a nested class hierarchy that mirrors Avro namespaces and produces submodules for clean imports.\n\nThe package handles logical types (date, time-millis, time-micros, timestamp-millis, timestamp-micros, decimal) out of the box and supports custom logical type processors. It generates both schema-based classes and protocol-based request types. Generated records behave as dictionaries internally, so they remain compatible with Avro's standard writers and readers, but provide schema discovery, validation, and autocomplete in your IDE.","worth_installing":"Yes, with conditions. Install if you need typed Avro records with IDE support and are comfortable with a dormant package. The low install friction, permissive license, zero vulnerabilities, and top-5000 popularity make it reasonable for schema-driven workflows. However, verify compatibility with your Python version and test thoroughly before adopting in new projects, since maintenance appears stalled."},"id":"avro-gen3","links":{"html":"https://skillfed.io/packages/avro-gen3","md":"https://skillfed.io/packages/avro-gen3.md","pypi":"https://pypi.org/project/avro-gen3/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2024-09-05","license_spdx":null,"license_treatment":"permissive","name":"avro-gen3","python_support":"unspecified","summary":"Avro record class and specific record reader generator"},"popularity":{"monthly_downloads":2988152,"position":2800,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"0.7.16"}
