7 Punkte von GN⁺ 2025-12-17 | Noch keine Kommentare. | Auf WhatsApp teilen
  • ty, ein in Rust geschriebener ultraschneller Python-Type-Checker und Language Server, wurde als Beta-Version veröffentlicht
  • Er wurde als Alternative zu mypy, Pyright und Pylance entwickelt und bietet eine 10- bis 60-fach höhere Leistung
  • Durch eine inkrementelle Architektur werden bei Code-Änderungen nur die erforderlichen Teile neu berechnet, um die Reaktionsgeschwindigkeit in Echtzeit zu maximieren
  • Mit Fokus auf Genauigkeit und Benutzerfreundlichkeit unterstützt ty moderne Features des Type-Systems wie Intersection Types, fortgeschrittenes Type Narrowing und Reachability Analysis
  • Astral plant, ty gemeinsam mit Ruff und uv zu einem zentralen Entwicklungswerkzeug des Python-Ökosystems auszubauen

Überblick über ty

  • ty ist ein von Astral entwickelter Python-Type-Checker und Language Server, implementiert in Rust
    • Er wurde als deutlich schnellere Alternative zu mypy, Pyright und Pylance konzipiert
    • Er wird bereits in Astrals internen Projekten umfassend eingesetzt und wird in der Beta-Phase auch externen Nutzern empfohlen
  • Astral ist ein Team, das hochperformante Entwicklungswerkzeuge für das Python-Ökosystem entwickelt, und ist bekannt für uv (Paketmanager) und Ruff (Linter und Formatter)

Leistung und Architektur

  • ty wurde mit einer Language-Server-zentrierten Struktur entworfen und verwendet einen inkrementellen Verarbeitungsansatz, bei dem bei Dateiänderungen nur notwendige Berechnungen erneut ausgeführt werden
    • Dadurch sind Echtzeit-Updates im Editor sehr schnell
  • Selbst bei Ausführung ohne Cache ist ty 10- bis 60-mal schneller als mypy und Pyright
    • Beispiel: Bei der Änderung zentraler Dateien im PyTorch-Repository beträgt die Zeit zur Neuberechnung der Diagnosen 4,7 ms und ist damit 80-mal schneller als Pyright (386 ms) und 500-mal schneller als Pyrefly (2,38 Sekunden)
  • Auch in großen Projekten beträgt der Leistungsunterschied bei inkrementellen Updates oft ein Vielfaches von mehreren Dutzend

Type-System und Genauigkeit

  • ty unterstützt Intersection Types, fortgeschrittenes Type Narrowing und typbasierte Reachability Analysis
    • Damit liefert es präzises Type-Feedback und reduziert unnötige False Positives
  • Das Ziel ist nicht nur mehr Geschwindigkeit, sondern der Aufbau eines Type-Checkers, der sowohl Genauigkeit als auch User Experience verbessert

Diagnosesystem

  • ty enthält ein fortschrittliches Diagnosesystem, das von den Fehlermeldungssystemen des Rust-Compilers inspiriert ist
    • In einer einzelnen Diagnosemeldung wird der Kontext aus mehreren Dateien gemeinsam dargestellt, sodass Ursache und Lösungsweg eines Problems klarer werden
    • Beispiel: Bei einer falschen Zuweisung eines Dictionary-Schlüssels werden sowohl die Stelle des Type-Mismatchs als auch der Deklarationsort angezeigt
  • Die Diagnoseausgabe ist die zentrale Schnittstelle von ty und wurde so gestaltet, dass sie für Menschen und KI gleichermaßen leicht verständlich ist

Language-Server-Funktionen

  • ty kann in allen Editoren verwendet werden, die LSP (Language Server Protocol) unterstützen, etwa VS Code und Cursor
    • Es unterstützt moderne Language-Server-Funktionen wie Go to Definition, Rename Symbol, Autovervollständigung, Auto-Import, semantisches Syntax-Highlighting und Inlay Hints
  • Die Installation ist über eine VS-Code-Erweiterung möglich; die CLI kann mit dem Befehl uv tool install ty@latest installiert werden

Ausblick

  • Kurzfristige Ziele nach der Beta sind mehr Stabilität und Bugfixes, die Vervollständigung der Python-Type-Spezifikation sowie Unterstützung für Pydantic und Django
  • Langfristig soll ty zur Engine für semantische Funktionen in Astrals Toolchain ausgebaut werden
    • Geplant sind Features wie Entfernung toten Codes, Erkennung ungenutzter Abhängigkeiten, Reachability Analysis für Sicherheitslücken (CVEs) und typbewusstes Linting
  • Astral will ty kontinuierlich verbessern, mit dem Ziel, Python zum produktivsten Programmierökosystem zu machen

Danksagung

  • An der Entwicklung von ty waren Dutzende Open-Source-Mitwirkende beteiligt; das Projekt wird unter der MIT-Lizenz veröffentlicht
  • Mehrere Personen und Teams aus den Communities rund um Salsa, Elixir und Python Typing lieferten technische Zusammenarbeit und Inspiration
  • Das Kernteam von Astral entwickelte ty auf Grundlage eines tiefen Verständnisses von Typentheorie, der Semantik der Python-Runtime und Nutzungsmustern im Ökosystem

Noch keine Kommentare.

Noch keine Kommentare.