--- id: pyyaml-ft version: "8.0.0" license: MIT license_treatment: permissive maintenance: aging --- # PyYAML-ft — YAML parser and emitter for Python with support for free-threading License: permissive · Maintenance: aging · Downloads: 10.2M/mo ## What it is and what it does PyYAML-ft is a fork of PyYAML designed specifically for Python 3.13's free-threaded build. It provides YAML parsing and serialization with thread-local registries for custom constructors, representers, and resolvers—meaning these must be registered per-thread rather than globally. The package uses Cython 3.1 (still experimental) and optionally compiles against LibYAML for faster C-based parsing and emission. The main trade-off is that custom YAML handlers registered in one thread are not automatically available in others; you must re-register them in each thread's worker function. This is a deliberate design choice to avoid thread-safety issues that the GIL previously masked. For applications using only built-in YAML types, the API is identical to upstream PyYAML. Use it for: - Parse YAML configuration files in multi-threaded Python 3.13 applications without GIL contention. - Serialize Python objects to YAML in free-threaded environments where concurrent dumping is needed. - Test upstream PyYAML behavior under free-threading before the official port is merged. - Build thread-pool-based services that load YAML documents concurrently on Python 3.13t. - Use safe_load() for untrusted YAML input in multi-threaded contexts without thread-safety concerns. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. PyYAML-ft is a YAML parser and emitter for Python 3.13 with support for free-threaded execution, allowing thread-safe YAML processing without the Global Interpreter Lock. Yes, if you are running Python 3.13 or 3.13t and need YAML processing in a multi-threaded application. The aging maintenance status (430 days since last release) is acceptable given the package's stated purpose as a temporary fork pending upstream support; however, verify that Cython 3.1's free-threading support is stable enough for your workload. For Python < 3.13, use upstream PyYAML instead. ## Install pip install pyyaml-ft uv add pyyaml-ft poetry add pyyaml-ft ## Installing PyYAML-ft Before you install: Medium install friction due to compiled C extensions. The package is aging—last release was 430 days ago—but the repository remains active with a recent commit on 2025-06-10. No runtime dependencies simplifies deployment once installed. License in practice: MIT license is permissive, allowing commercial and private use with minimal restrictions. No licensing friction for most projects. Quickstart: pip install PyYAML-ft import PyYAML-ft data = PyYAML-ft.safe_load('key: value') print(data) Requires Python 3.13 or 3.13t (free-threaded build); will not install on earlier Python versions. Verify before relying: - Whether LibYAML bindings are reliably available on all supported platforms or fall back silently. - Performance characteristics compared to upstream PyYAML when running on free-threaded Python 3.13. - Stability of Cython 3.1 support for free-threading in production workloads. - Thread-local registry behavior and whether re-registration per thread is required for custom constructors. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: medium - Maintenance: aging - Downloads: 10.2M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags yaml parser python 3.13, free-threaded yaml processing, thread-safe yaml library, yaml emitter python, pyyaml alternative 3.13, libyaml bindings python, yaml serialization deserialization, free-threading, python-3.13 [View on SkillFed](https://skillfed.io/packages/pyyaml-ft) · [View on PyPI](https://pypi.org/project/pyyaml-ft/)