ランタイム
ランタイム は、操作を非同期に実行するためのサポート(リアクター)を提供し、 future を実行する責任(エグゼキューター)を担います。Rust には “組み込み” のランタイムはありませんが、いくつかの選択肢があります。
より大規模なアプリケーションの中には、独自のランタイムを持つものもあります。たとえば、 Fuchsia にはすでにあります。
-
挙げたランタイムのうち、Rust playground でサポートされているのは Tokio だけである点に注意してください。playground では I/O も許可されていないため、多くの 興味深い async 処理は playground では実行できません。
-
Future は “不活性” であり、それらをポーリングするエグゼキューターが存在しない限り、 何も行いません(I/O 操作を開始することすらありません)。これは、たとえば JS の Promise とは異なります。JS の Promise は、たとえ一度も使われなくても、 完了まで実行されます。