Skip to content

Commit 055b095

Browse files
Adds paragraph about Edict 0.2 (#1149)
Co-authored-by: Forest Anderson <[email protected]>
1 parent c6a3f8c commit 055b095

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

content/news/037/index.md

Lines 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)