typing_extensions

Backported and experimental type-hint features for Python, usable on older interpreters and ahead of the stdlib.

Library
PyPI
v4.16.0
590 stars
PSF-2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
84 /100 Excellent
Development Activity 80
Maintenance 76
Community 84
Maturity 56
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
91 /100 Excellent
Architecture 88
Code Quality 96
Innovation 90
Learning Curve 90

typing_extensions gives Python developers early and backward-compatible access to the type system. It backports new features from the standard library’s typing module so they run on older Python versions, and it hosts experimental constructs from in-flight typing PEPs before they are accepted into the stdlib.

Maintained by the Python core typing team, it is recognized specially by static type checkers such as mypy and pyright, which treat its objects identically to their typing equivalents. Following strict semantic versioning, it has become a foundational dependency across the Python ecosystem, letting libraries adopt modern type-hint syntax without dropping support for older runtimes.

What You Get

  • Backports of newer typing constructs (Self, override, TypeAlias, ParamSpec, Unpack, and more) that run on Python 3.9+
  • Early access to experimental features from typing PEPs before they reach the standard library
  • First-class recognition by mypy, pyright, and other static type checkers
  • Strict semantic versioning so you can pin with confidence using compatible-release specifiers
  • A zero-dependency, drop-in module that mirrors the typing API surface

Common Use Cases

  • Writing libraries that adopt modern type hints while still supporting older Python versions
  • Using a typing feature that only exists in a newer stdlib than your minimum supported runtime
  • Trying out an experimental typing construct from a not-yet-accepted PEP
  • Providing consistent type-checking behavior across a matrix of Python versions

Under The Hood

Architecture

typing_extensions is delivered as a single large module, src/typing_extensions.py (~4,400 lines), with a curated all exporting roughly 125 public names. It re-exports symbols that already exist in the running interpreter’s typing module and, for anything missing, defines a compatible shim guarded by sys.version_info checks so each construct resolves to the native implementation when available and to a backport otherwise. A tiny helper, _typed_dict_test_helper.py, supports the TypedDict machinery. The design goal is transparency: an object imported from typing_extensions behaves identically to its typing counterpart at both runtime and type-check time.

Tech Stack

Pure Python targeting 3.9+, with no runtime dependencies. The build system is flit_core (>=3.11,<4) declared in pyproject.toml, linting is handled by Ruff (line length 90, py39 target), and the project ships a pre-commit config and tox setup. Documentation is built for Read the Docs. Distribution is PSF-2.0 licensed.

Code Quality

Code quality is exceptionally high. The test suite in src/test_typing_extensions.py is enormous (~350 KB), dwarfing the implementation itself and exercising each construct across supported interpreter versions. Extensive version-gated branches keep behavior consistent, and a detailed CHANGELOG documents every change. The project is maintained by the Python core typing team with 82 contributors and consistent, active development.

API Design The developer experience is intentionally invisible: you import a name from typing_extensions exactly as you would from typing, and it just works. Naming mirrors the stdlib one-to-one, there is no configuration or boilerplate, and the documentation on Read the Docs enumerates every included item along with the Python version each landed in natively. This deliberate mirroring is the library’s core ergonomic strength.

Used by 47 apps in this directory

Python
58%
Apache 2.0

MLflow

AI Development · Monitoring

28,512

The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.

View details
96
Repo Health
86
Technical
67
Dependency
Built with
Python 58%
TypeScript 35%
Updated 6 days ago
Python
58%
Apache 2.0

MLflow

AI Development · Monitoring

28,512

The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.

View details
96
Repo Health
86
Technical
67
Dependency
Built with
Python 58%
TypeScript 35%
Updated 6 days ago
Rust
71%
MIT

monty

AI Development · Developer Tools

8,763

Run LLM-generated Python code safely inside your agent—no containers, no CPython, no compromise—with sub-microsecond startup.

View details
88
Repo Health
83
Technical
73
Dependency
Built with
Rust 71%
Python 24%
Updated 1 weeks ago
Go
79%
Apache 2.0

OpenMeter

Developer Tools · Invoicing Finance

2,401

Open-source metering and billing engine for AI, agentic, and DevTool monetization — ingest usage events in real time and turn them into accurate invoices automatically.

View details
87
Repo Health
81
Technical
66
Dependency
Built with
Go 79%
TypeScript 16%
Updated 1 weeks ago
Python
73%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

40,705

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 73%
TypeScript 12%
Rust 11%
Updated 6 days ago
TypeScript
50%
Other

Phase Console

Devops · Security

931

End-to-end encrypted secrets management for engineering teams — from local dev to Kubernetes production.

View details
85
Repo Health
73
Technical
63
Dependency
Built with
TypeScript 50%
Python 48%
Updated 1 weeks ago
Python
49%
Other

Arize Phoenix

Analytics · Devops · Monitoring

11,976

Open-source AI observability platform for tracing, evaluating, and debugging LLM applications with built-in intelligence and MCP support.

View details
92
Repo Health
88
Technical
67
Dependency
Built with
Python 49%
TypeScript 43%
Updated 6 days ago
Rust
63%
MIT

PostgresML

AI Development · Databases

6,823

Run ML training and LLM inference natively inside PostgreSQL with GPU acceleration — no data movement required.

View details
51
Repo Health
76
Technical
64
Dependency
Built with
Rust 63%
JavaScript 11%
Updated 1 years ago
Python
99%
Apache 2.0

Rasa Open Source

AI Assistants · AI Development · Voice AI

21,353

Rasa Open Source is a Python machine learning framework for building contextual, multi-turn chatbots and voice assistants that understand natural language and maintain conversation state.

View details
62
Repo Health
78
Technical
63
Dependency
Built with
Python 99%
Updated 3 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers