Metadata-Version: 2.4
Name: zerodep
Version: 2026.5.5.3
Summary: Zero-dependency, single-file Python implementations of popular libraries — benchmarked for performance parity
Author: Peng Ding
License-Expression: MIT
Project-URL: Documentation, https://zerodep.readthedocs.io
Project-URL: Repository, https://github.com/Oaklight/zerodep
Project-URL: Issues, https://github.com/Oaklight/zerodep/issues
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: test
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
Requires-Dist: pytest-benchmark>=4.0.0; extra == "test"
Provides-Extra: bench-aes
Requires-Dist: pycryptodome==3.23.0; extra == "bench-aes"
Provides-Extra: bench-qr
Requires-Dist: qrcode==8.2; extra == "bench-qr"
Requires-Dist: Pillow==12.2.0; extra == "bench-qr"
Provides-Extra: bench-http
Requires-Dist: httpx==0.28.1; extra == "bench-http"
Provides-Extra: bench-dotenv
Requires-Dist: python-dotenv==1.2.2; extra == "bench-dotenv"
Provides-Extra: bench-yaml
Requires-Dist: PyYAML==6.0.3; extra == "bench-yaml"
Provides-Extra: bench-jsonc
Requires-Dist: commentjson==0.9.0; extra == "bench-jsonc"
Provides-Extra: bench-structlog
Requires-Dist: structlog==25.5.0; extra == "bench-structlog"
Provides-Extra: bench-retry
Requires-Dist: tenacity==9.1.4; extra == "bench-retry"
Provides-Extra: bench-toon
Requires-Dist: toon-format>=0.9.0b1; extra == "bench-toon"
Provides-Extra: bench-tabulate
Requires-Dist: tabulate==0.10.0; extra == "bench-tabulate"
Provides-Extra: bench-soup
Requires-Dist: beautifulsoup4==4.14.3; extra == "bench-soup"
Provides-Extra: bench-validate
Requires-Dist: pydantic==2.13.0; extra == "bench-validate"
Provides-Extra: bench-sse
Requires-Dist: httpx-sse==0.4.3; extra == "bench-sse"
Requires-Dist: httpx==0.28.1; extra == "bench-sse"
Provides-Extra: bench-markdown
Requires-Dist: mistune==3.2.1; extra == "bench-markdown"
Provides-Extra: bench-diff
Requires-Dist: unidiff==0.7.5; extra == "bench-diff"
Provides-Extra: bench-scheduler
Requires-Dist: APScheduler==3.11.2; extra == "bench-scheduler"
Requires-Dist: schedule==1.2.2; extra == "bench-scheduler"
Requires-Dist: croniter==6.2.2; extra == "bench-scheduler"
Provides-Extra: bench-search
Requires-Dist: rank-bm25==0.2.2; extra == "bench-search"
Requires-Dist: bm25s>=0.3.0; extra == "bench-search"
Provides-Extra: bench-frontmatter
Requires-Dist: python-frontmatter==1.1.0; extra == "bench-frontmatter"
Provides-Extra: bench-config
Requires-Dist: python-decouple==3.8; extra == "bench-config"
Provides-Extra: bench-cache
Requires-Dist: cachetools==7.0.5; extra == "bench-cache"
Provides-Extra: bench-xml
Requires-Dist: xmltodict==1.0.4; extra == "bench-xml"
Provides-Extra: bench-jsonrpc
Requires-Dist: jsonrpcserver==5.0.9; extra == "bench-jsonrpc"
Provides-Extra: bench-protobuf
Requires-Dist: protobuf==7.34.1; extra == "bench-protobuf"
Provides-Extra: bench-a2a
Requires-Dist: a2a-protocol==0.1.0; extra == "bench-a2a"
Provides-Extra: bench-acp
Requires-Dist: agent-client-protocol==0.9.0; extra == "bench-acp"
Provides-Extra: bench-semver
Requires-Dist: packaging==26.1; extra == "bench-semver"
Provides-Extra: bench-persistdict
Requires-Dist: sqlitedict==2.1.0; extra == "bench-persistdict"
Provides-Extra: bench-runner
Requires-Dist: sh==2.2.2; extra == "bench-runner"
Provides-Extra: bench-readability
Requires-Dist: readability-lxml==0.8.4.1; extra == "bench-readability"
Provides-Extra: bench-png
Requires-Dist: Pillow==12.2.0; extra == "bench-png"
Requires-Dist: numpy>=1.26.0; extra == "bench-png"
Provides-Extra: bench-useragent
Requires-Dist: ua-generator>=2.0.0; extra == "bench-useragent"
Provides-Extra: bench-httpserver
Requires-Dist: flask==3.1.3; extra == "bench-httpserver"
Requires-Dist: microdot==2.6.1; extra == "bench-httpserver"
Requires-Dist: bottle==0.13.4; extra == "bench-httpserver"
Provides-Extra: bench-websocket
Requires-Dist: websockets>=14.0; extra == "bench-websocket"
Provides-Extra: bench-cdp
Requires-Dist: websockets>=14.0; extra == "bench-cdp"
Provides-Extra: dev
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: ty>=0.0.24; extra == "dev"
Requires-Dist: complexipy>=5.2.0; extra == "dev"
Requires-Dist: build>=1.2.2.post1; extra == "dev"
Requires-Dist: twine>=6.1.0; extra == "dev"
Requires-Dist: zerodep[bench-a2a,bench-acp,bench-aes,bench-cache,bench-cdp,bench-config,bench-diff,bench-dotenv,bench-frontmatter,bench-http,bench-httpserver,bench-jsonc,bench-jsonrpc,bench-markdown,bench-persistdict,bench-png,bench-protobuf,bench-qr,bench-readability,bench-retry,bench-runner,bench-scheduler,bench-search,bench-semver,bench-soup,bench-sse,bench-structlog,bench-tabulate,bench-toon,bench-useragent,bench-validate,bench-websocket,bench-xml,bench-yaml,test]; extra == "dev"

# zerodep

[![PyPI](https://img.shields.io/pypi/v/zerodep?color=green)](https://pypi.org/project/zerodep/)
[![GitHub Release](https://img.shields.io/github/v/release/Oaklight/zerodep?color=green)](https://github.com/Oaklight/zerodep/releases)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![Python](https://img.shields.io/pypi/pyversions/zerodep?color=green)](https://pypi.org/project/zerodep/)
[![CI](https://img.shields.io/github/actions/workflow/status/Oaklight/zerodep/ci.yml?label=CI)](https://github.com/Oaklight/zerodep/actions/workflows/ci.yml)
[![Benchmarks](https://img.shields.io/badge/benchmarks-live-blue)](https://oaklight.github.io/zerodep/dev/bench)
[![Docs](https://img.shields.io/readthedocs/zerodep)](https://zerodep.readthedocs.io)

Zero-dependency, single-file Python implementations of popular libraries — stdlib only, benchmarked for performance parity, Python 3.10+.

零依赖、单文件的 Python 常用库实现 —— 仅使用标准库，性能对标主流库，支持 Python 3.10+。

[English Docs](https://zerodep.readthedocs.io/en/) | [中文文档](https://zerodep.readthedocs.io/zh-cn/)

## Quick Start

```bash
pip install zerodep          # install the CLI
zerodep add yaml retry       # copy modules into your project
```

```python
from yaml import load, dump

data = load("name: Alice\nage: 30")
print(data)  # {'name': 'Alice', 'age': 30}
```

Each module is a **self-contained single `.py` file** — copy it into your project and import. No `pip install` needed at runtime.

## Modules

Modules span Agent Protocols, Web & Networking, Data Formats, Data Validation, Text & Markup, Search & Retrieval, Configuration, CLI & Terminal, Security, and Infrastructure & Tools.

See the [full module list](https://zerodep.readthedocs.io/en/latest/modules/) for details, versions, and benchmarks.

## Versioning

- **Project**: [CalVer](https://calver.org/) `YYYY.M.D` (e.g., `2026.4.15`)
- **Modules**: independent [SemVer](https://semver.org/) per module (e.g., `0.4.1`)

Releases are automated via the [Release workflow](https://github.com/Oaklight/zerodep/actions/workflows/release.yml) — lint, test, bump module versions, tag, and create a GitHub Release in one step.

## Documentation

- **English**: [zerodep.readthedocs.io/en/](https://zerodep.readthedocs.io/en/)
- **中文**: [zerodep.readthedocs.io/zh-cn/](https://zerodep.readthedocs.io/zh-cn/)
- **Benchmarks**: [Live benchmark dashboard](https://oaklight.github.io/zerodep/dev/bench)

## License

[MIT](LICENSE)
