Trio 프로젝트는 프로덕션 품질의 허용 라이선스가 부여된 비동기/대기 네이티브 Python용 I/O 라이브러리를 생성하는 것을 목표로 합니다. 모든 비동기 라이브러리와 마찬가지로 이 라이브러리의 주요 목적은 병렬화된 I/O를 사용하여 동시에 여러 작업을 수행하는 프로그램을 작성하는 데 도움을 주는 것입니다. 많은 페이지를 병렬로 가져오려는 웹 스파이더, 많은 다운로드와 웹소켓 연결을 동시에 처리해야 하는 웹 서버, 여러 하위 프로세스를 모니터링하는 프로세스 감독자... 그런 종류의 것입니다. 다른 라이브러리와 비교하여 Trio는 유용성 과 정확성 에 대한 강박적인 초점을 통해 차별화를 시도합니다. 동시성은 복잡합니다. 우리는 일을 바로 잡는 것을 쉽게 만들려고 노력합니다.
Trio는 처음부터 최신 Python 기능을 활용하도록 제작되었으며 특히 Dave Beazley의 Curio와 같은 다양한 소스에서 영감을 얻었습니다. 그 결과 디자인은 asyncio 및 Twisted와 같은 기존 경쟁사보다 훨씬 단순하면서도 성능은 동일합니다. Trio는 제가 항상 원했던 Python I/O 라이브러리입니다. 나는 이것이 I/O 지향 프로그램을 더 쉽게 만들고, 오류가 덜 발생하며, 훨씬 더 재미있다고 생각합니다. 아마도 당신도 같은 것을 발견하게 될 것입니다.
이 프로젝트는 아직 초기 단계이고 다소 실험적입니다. 전체적인 디자인은 견고하며 기존 기능은 완벽하게 테스트 및 문서화되어 있지만 누락된 기능이나 거친 부분이 발생할 수 있습니다. 이 기능을 사용하는 것이 좋습니다 . 하지만 경고를 받고 호환성을 손상시키는 변경 사항에 대한 피드백을 제공할 기회를 얻으려면 이슈 #1을 읽고 구독해야 합니다.
나는 그것을 시도하고 싶다! 엄청난! 시작하는 데 도움이 되는 친절한 튜토리얼이 있습니다. 비동기 코딩에 대한 사전 경험은 필요하지 않습니다.
아, 그 내용을 모두 읽고 싶지는 않습니다. 코드를 보여주세요! 참을성이 없다면 여기에 간단한 동시성 예제, 에코 클라이언트 및 에코 서버가 있습니다.
Trio는 어떻게 경쟁 접근 방식보다 프로그램을 더 쉽게 읽고 추론할 수 있도록 합니까? Trio는 "구조화된 동시성"이라고 부르는 새로운 사고 방식을 기반으로 합니다. 가장 좋은 이론적 소개는 구조화된 동시성에 대한 참고 사항 또는 유해한 것으로 간주되는 Go 문입니다. 또는 PyCon 2018에서 이 강연을 확인하여 Trio와 비교하여 기존 라이브러리에서 "Happy Eyeballs" 알고리즘을 구현하는 데모를 확인하세요.
멋지네요. 그런데 제 시스템에서 작동할까요? 아마! Python 3.9 이상(CPython 또는 현재 유지 관리되는 PyPy3 버전 모두 괜찮음)이 있고 Linux, macOS, Windows 또는 FreeBSD를 사용하는 한 Trio는 작동합니다. 다른 환경도 작동할 수 있지만 이것이 우리가 테스트한 환경입니다. 그리고 휠이 있는 Windows의 CFFI를 제외하고 우리의 모든 종속성은 순수 Python이므로 설치가 쉬울 것입니다(C 컴파일러가 필요하지 않음).
시도해 보았지만 작동하지 않습니다. 안타깝네요! 채팅방이나 포럼에 도움을 요청하거나, 버그를 제출하거나, StackOverflow에 질문을 게시해 보세요. 최선을 다해 도와드리겠습니다.
Trio는 정말 훌륭합니다. 저는 이를 더욱 훌륭하게 만드는 데 도움을 주고 싶습니다! 당신은 최고입니다! 누락된 기능 채우기, Trio 사용 라이브러리 생태계 구축, 사용성 테스트(예: 자신이나 친구에게 Trio 사용 방법을 가르치고 발생한 모든 오류 메시지 목록을 작성하여 어디에 배치하는지 등) 해야 할 일이 많습니다. 혼란스러워요?), 문서를 개선하고, 기여자를 위한 가이드를 확인하세요!
당장 사용할 계획은 없지만 I/O 라이브러리 디자인에 대해 알아보는 것을 좋아합니다! 좀 이상한데? 하지만 솔직히 말해서, 당신은 이 근처에 아주 잘 어울릴 거예요. 구조화된 동시성을 논의하기 위한 전체 하위 포럼이 있습니다(다른 시스템 개발자를 환영합니다!). 또는 디자인 선택, 읽기 목록 및 디자인 토론 태그가 붙은 문제에 대한 토론을 확인하세요.
우리 회사의 변호사들이 나에게 화를 내지 않도록 하고 싶습니다! 걱정하지 마세요. Trio는 귀하가 선택한 MIT 또는 Apache 2에 따라 허용되는 라이선스가 부여됩니다. 자세한 내용은 라이선스를 참조하세요.
기여자는 모든 프로젝트 공간에서 우리의 행동 강령을 따라야 합니다.