Trio プロジェクトは、実稼働品質で、寛容にライセンスされた、Python 用の非同期/待機ネイティブ I/O ライブラリを作成することを目的としています。すべての非同期ライブラリと同様、その主な目的は、並列化された I/Oで同時に複数の処理を実行するプログラムの作成を支援することです。大量のページを並行してフェッチしたい Web スパイダー、大量のダウンロードと WebSocket 接続を同時にやりくりする必要がある Web サーバー、複数のサブプロセスを監視するプロセス スーパーバイザなどです。他のライブラリと比較して、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 の使い方を教えてみたり、ヒットしたすべてのエラー メッセージのリストを作成してどこに配置したりするなど)混乱しましたか?)、ドキュメントを改善し、...貢献者向けのガイドを確認してください。
すぐに使用する予定はありませんが、I/O ライブラリの設計について調べるのは大好きです。それはちょっと変ですか?でも正直に言うと、あなたはここにぴったり合うでしょう。私たちは構造化された同時実行性について議論するためのサブフォーラムを用意しています (他のシステムの開発者も歓迎します!)。または、デザインの選択、読書リスト、デザインディスカッションのタグが付いた問題に関するディスカッションをチェックしてください。
会社の弁護士に怒られないようにしたい!心配はいりません。Trio は、MIT または Apache 2 の選択に基づいて寛容にライセンスされています。詳細については、「ライセンス」を参照してください。
貢献者は、すべてのプロジェクト スペースで当社の行動規範に従うことが求められます。