facebook/pyrefly
요약
Pyrefly는 Python을 위한 고성능 타입 체커이자 언어 서버입니다. 코드 탐색, 의미론적 하이라이팅, 코드 완성 등 다양한 IDE 기능을 제공하며, Mypy나 Pyright보다 훨씬 빠른 속도를 자랑합니다. Meta의 대규모 코드베이스와 같은 실제 환경에서 검증되었으며, Pydantic 및 Django 같은 주요 프레임워크를 내장 지원하여 즉시 사용 가능합니다.
핵심 포인트
- Pyrefly는 Python 타입 체커 및 언어 서버로, IDE 기능과 초고속 타입 체크를 제공합니다.
- Mypy/Pyright 대비 15배 빠른 속도를 자랑하며, 대규모 코드베이스 환경에서 검증되었습니다.
- 코드 탐색, 자동 완성, 의미론적 하이라이팅 등 풀 기능의 언어 서버 기능을 지원합니다.
- Pydantic 및 Django 같은 주요 프레임워크를 내장 지원하여 실제 Python 개발 환경에 최적화되어 있습니다.
- 초기 도입을 위해 `pyrefly init`과 같은 명령줄 도구를 제공하며, 사용 편의성을 높였습니다.
Pyrefly는 Python을 위한 타입 체커 (type checker) 및 언어 서버 (language server)로, 코드 탐색 (code navigation), 의미론적 하이라이팅 (semantic highlighting), 코드 완성 (code completion)과 같은 IDE 기능과 함께 번개처럼 빠른 타입 체크 (type checking)를 제공합니다. 이는 명령줄 도구 (command-line tool) 및 VSCode, Neovim, Zed 등 인기 있는 IDE 및 에디터용 확장 프로그램으로 사용할 수 있습니다.
전체 문서와 원하는 에디터에 Pyrefly를 추가하는 방법은 Pyrefly 웹사이트를 참조하세요.
Pyrefly의 현재 개발 상태는 안정적 (stable)입니다.
빠름. Pyrefly는 초당 185만 줄 이상의 코드를 체크하며, PyTorch와 같은 프로젝트를 Mypy 및 Pyright보다 15배 더 빠르게 타입 체크합니다. IDE에서는 파일을 저장한 후 재체크가 보통 10밀리초 (milliseconds) 이내에 완료됩니다.
대규모 환경에서 검증됨. Pyrefly는 Meta의 2,000만 줄 규모의 Instagram Python 코드베이스를 위한 기본 타입 체커이며, PyTorch 및 JAX를 포함한 대규모 오픈 소스 프로젝트에서 채택되었습니다.
풀 기능 언어 서버. 코드 탐색 (code navigation), 자동 완성 (autocomplete), 호버 정보 (hover information), 인레이 힌트 (inlay hints), 의미론적 하이라이팅 (semantic highlighting) 등을 제공하며, CLI와 선택한 에디터에서 일관된 결과를 보여줍니다.
실제 Python 환경 이해. Pydantic 및 Django와 같은 프레임워크를 내장 지원하며, 모델 검증 (model validation), 필드 타입 (field types), 자동 완성 (autocomplete)이 즉시 작동합니다.
도입 준비 완료. pyrefly init으로 Mypy 또는 Pyright에서 마이그레이션하고, pyrefly suppress로 기존 에러를 억제하며, pyrefly infer로 타입 어노테이션 (type annotations)을 생성하세요. 파일 하나로 시작하여 원하는 속도에 맞춰 확장할 수 있습니다.
-
브라우저에서 pyrefly 체험하기: Sandbox
-
명령줄 도구 설치하기:
pip install pyrefly -
IDE 확장 프로그램 설치하기: IDE installation page
Pyrefly는 매월 새로운 마이너 버전 (1.x.0)을 출시하며, 중요한 수정이 필요한 경우 그 사이에 패치 버전 (patch versions)을 출시합니다. Pyrefly는 엄격한 유의적 버전 관리 (semantic versioning)를 따르지 않습니다. 마이너 버전은 패치 버전보다 더 중요한 변경 사항을 포함하지만, 어떤 버전에서도 새로운 타입 에러 (type errors) 및 기타 중단적 변경 사항 (breaking changes)이 발생할 수 있습니다. pyrefly suppress
command을 사용하여 새로운 버전으로 업그레이드할 때 발생하는 오류를 쉽게 억제할 수 있습니다.
질문이 있거나 버그를 보고하고 싶다면, 이슈(issue)를 생성해 주세요.
Pyrefly에 기여하는 방법에 대한 정보는 기여 가이드(contributing guide) 및 아키텍처 개요(architecture overview)를 참조하십시오.
Discord에 참여하여 Pyrefly 및 타입(types)에 대해 이야기해 보세요. 이곳은 격주로 진행되는 오피스 아워(office hours)가 열리는 곳이기도 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기