aiohttp>=3.13.0
Brotli
selectolax>=0.4.0
defusedxml>=0.7.0
pydantic>=2.12.0
orjson>=3.11.0
aiofiles>=24.1.0
aiosqlite>=0.20.0
xxhash>=3.0.0

[:python_version < "3.12"]
typing_extensions>=4.5

[:python_version < "3.14"]
backports.zstd>=1.6.0

[all]
graph-crawler[antidetect,articles,celery,fuzzy,markdown,mongodb,performance,postgresql,server,sitemap-fast,system,text,viz]

[antidetect]
graph-crawler[browser,cloak,stealth,tls,undetected]

[articles]
newspaper3k>=0.2.8
goose3>=3.1.0
readability-lxml>=0.8.0

[browser]
playwright>=1.58.0

[captcha]

[celery]
celery>=5.5.0
redis>=5.2.0

[cloak]
cloakbrowser>=0.5
playwright>=1.58.0

[dev]
pytest>=9.0.0
pytest-asyncio>=0.24.0
pytest-cov>=7.0.0
black>=24.0.0
ruff>=0.8.0
mypy>=1.13.0
psutil
rapidfuzz>=3.6.0
pytest-timeout>=2.3.0
pytest-xdist>=3.5.0
build>=1.2.0
twine>=5.0.0
playwright>=1.58.0
curl_cffi>=0.7
html2md-clean>=0.5.0
markdown-it-py>=4.0.0
tiktoken>=0.13.0
stop-words>=2018.7.23
fastapi>=0.135.0
httpx>=0.28

[fuzzy]
rapidfuzz>=3.6.0

[goose]
goose3>=3.1.0

[markdown]
html2md-clean>=0.5.0
markdown-it-py>=4.0.0

[mongodb]
pymongo[srv]>=4.9.0

[native]
cython>=3.0.0
mmh3>=5.0.0

[newspaper]
newspaper3k>=0.2.8

[performance]
aiodns>=3.6.0

[performance:platform_system != "Windows"]
uvloop>=0.22.0

[playwright]
graph-crawler[browser]

[postgresql]
asyncpg>=0.30.0

[readability]
readability-lxml>=0.8.0

[server]
fastapi>=0.135.0
uvicorn>=0.30
websockets>=13

[sitemap-fast]
lxml>=5.1.0

[stealth]
patchright>=1.52
playwright-stealth>=1.0

[system]
psutil>=5.9.0

[text]
tiktoken>=0.13.0
stop-words>=2018.7.23

[tls]
curl_cffi>=0.7

[undetected]
nodriver>=0.38

[viz]
pyvis>=0.3.0
networkx>=3.6
