Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 055b095

Browse filesBrowse files
Adds paragraph about Edict 0.2 (rust-gamedev#1149)
Co-authored-by: Forest Anderson <forestkzanderson@gmail.com>
1 parent c6a3f8c commit 055b095
Copy full SHA for 055b095

File tree

1 file changed

+32
-0
lines changed
Filter options

1 file changed

+32
-0
lines changed

‎content/news/037/index.md

Copy file name to clipboardExpand all lines: content/news/037/index.md
+32Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,38 @@ _Discussions:
582582
[shipyard-visualizer]: https://leudz.github.io/shipyard/visualizer
583583
[shipyard-release-post]: https://users.rust-lang.org/t/shipyard-0-6-release/79504
584584

585+
### [Edict]
586+
587+
[Edict] by [@zakarumych] is powerful Rust ECS crate that expands traditional ECS
588+
feature set. The new version 0.2 is getting [ready for release]. This ECS is based
589+
on archetypes for fast cache-friendly iteration. And there are quite a few novel
590+
features:
591+
592+
- [Edict] allows to express relations between entities using [`Relation`] trait.
593+
Relations are linked to a pair of entities - origin and target. This opens a
594+
wide range of opportunities to create entity graphs with custom logic.
595+
- Custom hooks for components and relations to trigger actions when component is
596+
dropped/replaced, or when relation target is dropped.
597+
- Optional [`Component`] trait. [Edict] allows using component types that do not
598+
implement [`Component`] with some restrictions.
599+
- Change tracking with flexible queries for modified components suitable for
600+
complex use cases. E.g. incremental saves can fetch all components modified
601+
since previous save.
602+
- Type-agnostic component borrowing. Component type may define list of types
603+
that can be borrowed from it. Important use case is borrowing [`dyn Traits`].
604+
- [Edict] supports parallel execution. Built-in scheduler uses systems that
605+
implement [`System`] trait. Functions can be safely transformed into systems
606+
similarly to [`bevy_ecs`].
607+
608+
[Edict]: https://github.com/zakarumych/edict
609+
[@zakarumych]: https://github.com/zakarumych
610+
[ready for release]: https://docs.rs/edict/0.2.0-rc.3/edict/
611+
[`Relation`]: https://docs.rs/edict/0.2.0-rc.3/edict/relation/trait.Relation.html
612+
[`Component`]: https://docs.rs/edict/0.2.0-rc.3/edict/component/trait.Component.html
613+
[`dyn Traits`]: https://doc.rust-lang.org/book/ch17-02-trait-objects.html
614+
[`System`]: https://docs.rs/edict/0.2.0-rc.3/edict/system/trait.System.html
615+
[`bevy_ecs`]: https://crates.io/crates/bevy_ecs
616+
585617
## Popular Workgroup Issues in Github
586618

587619
<!-- Up to 10 links to interesting issues -->

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.