Are we PEP 517 yet? 📦

Last refreshed: 2026-11-07

What is PEP 517?

PEP 517 defines a standard interface between build frontends such as pip and uv, and build backends such as Setuptools, Flit, Hatchling, and PDM.

It allows projects to declare their build dependencies in the [build-system] table of pyproject.toml.

Legend

  • Green projects (294; 81.7%): declares a PEP 517 build backend
  • Yellow projects (61; 16.9%): no PEP 517 backend, but a universal wheel
  • Orange projects (1; 0.3%): no PEP 517 backend and no universal wheel
  • Gray projects (4; 1.1%): no source distribution

The package ranking comes from Hugo van Kemenade. The complete build-system dataset is available as csv.

Are we PEP 643 yet?

boto3 packaging typing-extensions certifi idna urllib3 charset-normalizer requests cryptography cffi pluggy pyyaml pycparser pygments python-dateutil six setuptools pydantic pydantic-core click numpy botocore anyio annotated-types pytest iniconfig typing-inspection h11 attrs markupsafe httpx httpcore s3transfer protobuf python-dotenv pyjwt jinja2 pandas aiobotocore starlette opentelemetry-api platformdirs pillow uvicorn pathspec rpds-py fsspec jsonschema filelock jmespath tzdata referencing tomlkit jsonschema-specifications multidict markdown-it-py rich aiohttp yarl mdurl propcache pip annotated-doc websockets fastapi googleapis-common-protos pytz frozenlist tqdm pyasn1 aiosignal aiohappyeyeballs sniffio pydantic-settings wrapt python-multipart google-auth pyarrow trove-classifiers zipp lxml tenacity importlib-metadata pyasn1-modules ruff sqlalchemy jiter greenlet hatchling wheel pyparsing grpcio regex truststore scipy grpcio-status openai httpx2 watchfiles httpcore2 psutil google-api-core openpyxl et-xmlfile soupsieve distro opentelemetry-semantic-conventions coverage opentelemetry-sdk beautifulsoup4 shellingham sse-starlette s3fs mypy-extensions typer mcp proto-plus colorama wcwidth uvloop huggingface-hub dnspython requests-oauthlib httptools tomli pytest-asyncio cachetools opentelemetry-proto docstring-parser editables oauthlib werkzeug more-itertools virtualenv defusedxml sortedcontainers opentelemetry-exporter-otlp-proto-common networkx pytest-cov redis distlib exceptiongroup hf-xet fonttools msgpack psycopg2-binary itsdangerous opentelemetry-exporter-otlp-proto-http mako alembic requests-toolbelt orjson prompt-toolkit tiktoken scikit-learn tokenizers rsa cloudpickle threadpoolctl mypy isodate flask email-validator anthropic nodeenv pyopenssl python-discovery httpx-sse joblib psycopg blinker matplotlib zstandard tzlocal execnet pytest-xdist h2 google-cloud-core hpack websocket-client psycopg-binary hyperframe tabulate pynacl azure-core kiwisolver pypdf ruamel-yaml bcrypt opentelemetry-instrumentation google-cloud-storage google-cloud-bigquery chardet msal google-crc32c contourpy cycler langchain prometheus-client dill librt google-resumable-media google-genai xxhash keyring xlsxwriter langchain-core decorator identify grpcio-tools pre-commit jaraco-classes cfgv jaraco-functools uv jsonpointer sentry-sdk sympy jeepney gitpython mpmath secretstorage jaraco-context backoff asgiref docutils deprecated docker asn1crypto toml uritemplate smmap webencodings ptyprocess narwhals traitlets gitdb google-api-python-client azure-identity asyncpg aiofiles google-auth-httplib2 pexpect rapidfuzz httplib2 opentelemetry-util-http msal-extensions authlib pytest-json-ctrf fastjsonschema jsonpatch black playwright executing google-auth-oauthlib opentelemetry-exporter-otlp-proto-grpc sqlparse python-docx babel pyee async-timeout pymupdf gunicorn tornado markdown grpc-google-iam-v1 joserfc python-pptx transformers tinycss2 paramiko jedi structlog parso snowflake-connector-python flatbuffers ipython asttokens xmltodict mcp-types pyzmq pytest-timeout brotli pyproject-hooks onnxruntime matplotlib-inline pure-eval azure-storage-blob watchdog build ast-serialize stack-data python-json-logger aioitertools litellm isort cachecontrol griffelib google-cloud-aiplatform jupyter-core typedload nbformat croniter pytest-mock debugpy marshmallow types-pyyaml langsmith nest-asyncio awscli poetry-core cython safetensors pypdfium2 multiprocess slack-sdk databricks-sdk sqlglot lz4 awswrangler lark kubernetes jupyter-client beartype pytokens uuid-utils tomli-w setuptools-scm opentelemetry-instrumentation-asgi pycryptodome pymysql opentelemetry-instrumentation-fastapi types-requests fastuuid reportlab termcolor loguru jsonref xlrd argon2-cffi-bindings cyclopts text-unidecode pyperclip argon2-cffi vcs-versioning python-slugify pathable mdit-py-plugins jsonschema-path rfc3339-validator mccabe shapely faker semver cbor2 graphql-core opentelemetry-instrumentation-requests mistune wsproto rich-rst