Twisted
詳細情報
- 開発者
- Glyph Lefkowitz
- 公開
- 種別
- ネットワークフレームワーク
- ライセンス
- MIT
- 公式サイト
- twisted.org
Python のイベント駆動ネットワークフレームワーク。言語自体が非同期 I/O を持つ10年も前から、それを提供していた。
Glyph Lefkowitz が2002年頃に書き始めた。伝説によれば、ネットワーク対戦ゲームを作ろうとしたのがきっかけだという。中核にあるのはリアクターで、すべてのソケットを一つのループで監視し、何かが起きたらあなたのコードを呼び戻す。その上に、HTTP、SMTP、IMAP、SSH、DNS、IRC、XMPP など、驚くほど多くのプロトコルが実装されている。その多くは Python で最初の完全な実装だった。
中心となる抽象が Deferred で、まだ存在しない結果を表し、そこにコールバックをつなぐオブジェクトだ。JavaScript の Promise と実質的に同じ発想で、数年早く独立に到達していた。Python に2014年に asyncio、2015年に async/await が入ってからはそちらが標準になり、今の Twisted は両方の世界と相互運用できる。