@@ -427,6 +427,29 @@ blink-alloc, only on `allocator-api2`.
427
427
[ Miri ] : https://github.com/rust-lang/miri
428
428
[ strict-provenance ] : https://github.com/rust-lang/rust/issues/95228
429
429
430
+ ### [ pecs]
431
+
432
+ ![ pecs example, same as in the README] ( pecs.png )
433
+ _ Promise chaining example_
434
+
435
+ In the ECS environment, you can't use the standard async/await
436
+ approach, which can make implementing asynchronous logic painful.
437
+
438
+ [ pecs] is a plugin for the [ Bevy] [ bevy ] engine that solves this problem.
439
+ It allows you to execute the code asynchronously by chaining multiple
440
+ promises as part of [ Bevy's ` ecs ` ] [ ecs ] environment.
441
+
442
+ Each promise takes state and the result of the previous promise as arguments,
443
+ as well as any Bevy ECS system parameter, and passes the modified
444
+ state and new promise/result to the next promise. It's easy to register custom
445
+ promises that wait for user input, events, asset loading, and so on. You can
446
+ also use [ pecs] to wait for any or all of multiple promises to complete
447
+ before continuing with the rest of the code, as well as to loop asynchronously
448
+ until a condition is met.
449
+
450
+ [ pecs ] : https://github.com/jkb0o/pecs
451
+ [ ecs ] : https://bevyengine.org/learn/book/getting-started/ecs
452
+
430
453
## Popular Workgroup Issues in Github
431
454
432
455
<!-- Up to 10 links to interesting issues -->
0 commit comments