2.2.14 • Published 8 months ago

@latticexyz/recs v2.2.14

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

recs - Reactive Entity Component System

recs is built with reactivity in mind. Components and Queries expose an update$ stream, that Systems can react to.

To build some fundamental intuition about ECS, have a look at our MUD ECS introduction.

recs is seamlessly integrated with the other MUD libraries, but can be used independently.

For detailed documentation, check out mud.dev/recs.

Features

  • Reactive components, queries, and systems
  • Powerful queries, including advanced indirect relationship queries
  • Seamless integration with other MUD libraries and services
  • Simple, declarative API
  • Ultra high performance
  • TypeScript support

Example

import {
  createWorld,
  defineComponent,
  createEntity,
  withValue,
  defineSystem,
  Has,
  getComponentValue,
  setComponent,
} from "@latticexyz/recs";

// Create a new World
const World = createWorld();

// Define a couple components
const Position = defineComponent(world, { x: Type.Number, y: Type.Number });
const Movable = defineComponent(world, { speed: Type.Number });

// Create a new entity
const entity1 = createEntity(world, [withValue(Position, { x: 0, y: 0 }), withValue(Movable, { speed: 10 })]);

// Define a system that reacts to updates of movable entities with a position
defineSystem(world, [Has(Position), Has(Movable)], (update) => {
  console.log("Entity", update.entity, "moved to", update.value);
  // ... do stuff, like rendering the entity on the screen, etc
});

// Move the entity around
setInterval(() => {
  const currentPosition = getComponentValue(Position, entity1);
  const newPosition = { x: position.x + 1, y: position.y + 1 };
  setComponent(Position, entity1, newPosition);
}, 1000);

Acknowledgements

  • Syntax originally inspired by bitECS
2.2.14

9 months ago

2.2.13

9 months ago

2.2.12

9 months ago

2.2.11

9 months ago

2.2.10

9 months ago

2.2.9

10 months ago

2.2.8

10 months ago

2.2.5

10 months ago

2.2.4

10 months ago

2.2.7

10 months ago

2.2.6

10 months ago

2.2.3

10 months ago

2.2.2

10 months ago

2.2.1

10 months ago

2.2.0

10 months ago

2.1.1

11 months ago

2.1.0

11 months ago

2.0.12

1 year ago

2.0.11

1 year ago

2.0.10

1 year ago

2.0.9

1 year ago

2.0.8

1 year ago

2.0.7

1 year ago

2.0.6

1 year ago

2.0.5

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.4

1 year ago

2.0.0-next.18

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

2.0.0-next.17

1 year ago

2.0.0-next.16

1 year ago

2.0.0-next.15

2 years ago

2.0.0-next.8

2 years ago

2.0.0-next.9

2 years ago

2.0.0-next.6

2 years ago

2.0.0-next.7

2 years ago

2.0.0-next.4

2 years ago

2.0.0-next.5

2 years ago

2.0.0-next.10

2 years ago

2.0.0-next.11

2 years ago

2.0.0-next.12

2 years ago

2.0.0-next.13

2 years ago

2.0.0-next.14

2 years ago

2.0.0-next.2

2 years ago

2.0.0-next.3

2 years ago

2.0.0-next.0

2 years ago

2.0.0-next.1

2 years ago

2.0.0-alpha.1.99

2 years ago

2.0.0-alpha.1.97

2 years ago

2.0.0-alpha.1.98

2 years ago

2.0.0-alpha.1.95

2 years ago

2.0.0-alpha.1.96

2 years ago

2.0.0-alpha.1.59

2 years ago

2.0.0-alpha.1.57

2 years ago

2.0.0-alpha.1.58

2 years ago

2.0.0-alpha.1.55

2 years ago

2.0.0-alpha.1.56

2 years ago

2.0.0-alpha.1.53

2 years ago

2.0.0-alpha.1.54

2 years ago

2.0.0-alpha.1.51

2 years ago

2.0.0-alpha.1.52

2 years ago

2.0.0-alpha.1.60

2 years ago

2.0.0-alpha.1.61

2 years ago

2.0.0-alpha.1.68

2 years ago

2.0.0-alpha.1.69

2 years ago

2.0.0-alpha.1.66

2 years ago

2.0.0-alpha.1.67

2 years ago

2.0.0-alpha.1.64

2 years ago

2.0.0-alpha.1.65

2 years ago

2.0.0-alpha.1.62

2 years ago

2.0.0-alpha.1.63

2 years ago

2.0.0-alpha.1.71

2 years ago

2.0.0-alpha.1.72

2 years ago

2.0.0-alpha.1.70

2 years ago

2.0.0-alpha.1.79

2 years ago

2.0.0-alpha.1.77

2 years ago

2.0.0-alpha.1.78

2 years ago

2.0.0-alpha.1.75

2 years ago

2.0.0-alpha.1.76

2 years ago

2.0.0-alpha.1.73

2 years ago

2.0.0-alpha.1.74

2 years ago

2.0.0-alpha.1.82

2 years ago

2.0.0-alpha.1.83

2 years ago

2.0.0-alpha.1.80

2 years ago

2.0.0-alpha.1.81

2 years ago

2.0.0-alpha.1.88

2 years ago

2.0.0-alpha.1.89

2 years ago

2.0.0-alpha.1.86

2 years ago

2.0.0-alpha.1.87

2 years ago

2.0.0-alpha.1.84

2 years ago

2.0.0-alpha.1.85

2 years ago

2.0.0-alpha.1.93

2 years ago

2.0.0-alpha.1.94

2 years ago

2.0.0-alpha.1.91

2 years ago

2.0.0-alpha.1.92

2 years ago

2.0.0-alpha.1.90

2 years ago

2.0.0-alpha.1.39

2 years ago

2.0.0-alpha.1.37

2 years ago

2.0.0-alpha.1.38

2 years ago

2.0.0-alpha.1.35

2 years ago

2.0.0-alpha.1.36

2 years ago

2.0.0-alpha.1.34

2 years ago

2.0.0-alpha.1.48

2 years ago

2.0.0-alpha.1.49

2 years ago

2.0.0-alpha.1.46

2 years ago

2.0.0-alpha.1.47

2 years ago

2.0.0-alpha.1.44

2 years ago

2.0.0-alpha.1.45

2 years ago

2.0.0-alpha.1.42

2 years ago

2.0.0-alpha.1.43

2 years ago

2.0.0-alpha.1.41

2 years ago

2.0.0-alpha.1.50

2 years ago

2.0.0-alpha.1.19

2 years ago

2.0.0-alpha.1.17

2 years ago

2.0.0-alpha.1.18

2 years ago

2.0.0-alpha.1.15

2 years ago

2.0.0-alpha.1.16

2 years ago

2.0.0-alpha.1.13

2 years ago

2.0.0-alpha.1.11

2 years ago

2.0.0-alpha.1.12

2 years ago

2.0.0-alpha.7

2 years ago

2.0.0-alpha.1.10

2 years ago

2.0.0-alpha.8

2 years ago

2.0.0-alpha.9

2 years ago

2.0.0-alpha.3

2 years ago

2.0.0-alpha.4

2 years ago

2.0.0-alpha.5

2 years ago

1.41.1-alpha.0

2 years ago

2.0.0-alpha.6

2 years ago

2.0.0-alpha.94

2 years ago

2.0.0-alpha.0

2 years ago

2.0.0-alpha.1

2 years ago

2.0.0-alpha.93

2 years ago

2.0.0-alpha.2

2 years ago

2.0.0-alpha.92

2 years ago

1.40.0

2 years ago

2.0.0-alpha.1.28

2 years ago

2.0.0-alpha.1.29

2 years ago

2.0.0-alpha.1.26

2 years ago

2.0.0-alpha.1.27

2 years ago

2.0.0-alpha.91

2 years ago

2.0.0-alpha.90

2 years ago

2.0.0-alpha.1.22

2 years ago

2.0.0-alpha.1.23

2 years ago

2.0.0-alpha.1.20

2 years ago

2.0.0-alpha.1.21

2 years ago

2.0.0-alpha.88

2 years ago

2.0.0-alpha.87

2 years ago

2.0.0-alpha.86

2 years ago

2.0.0-alpha.85

2 years ago

2.0.0-alpha.84

2 years ago

2.0.0-alpha.83

2 years ago

2.0.0-alpha.81

2 years ago

2.0.0-alpha.89

2 years ago

2.0.0-alpha.80

2 years ago

2.0.0-alpha.1.33

2 years ago

2.0.0-alpha.1.31

2 years ago

2.0.0-alpha.1.32

2 years ago

2.0.0-alpha.1.30

2 years ago

2.0.0-alpha.76

2 years ago

2.0.0-alpha.75

2 years ago

2.0.0-alpha.74

2 years ago

2.0.0-alpha.73

2 years ago

2.0.0-alpha.72

2 years ago

1.41.0

2 years ago

2.0.0-alpha.79

2 years ago

2.0.0-alpha.78

2 years ago

2.0.0-alpha.66

2 years ago

2.0.0-alpha.65

2 years ago

2.0.0-alpha.64

2 years ago

2.0.0-alpha.63

2 years ago

2.0.0-alpha.62

2 years ago

2.0.0-alpha.61

2 years ago

2.0.0-alpha.60

2 years ago

2.0.0-alpha.69

2 years ago

2.0.0-alpha.68

2 years ago

2.0.0-alpha.67

2 years ago

2.0.0-alpha.55

2 years ago

2.0.0-alpha.54

2 years ago

2.0.0-alpha.53

2 years ago

2.0.0-alpha.52

2 years ago

2.0.0-alpha.51

2 years ago

2.0.0-alpha.50

2 years ago

1.42.0

2 years ago

2.0.0-alpha.59

2 years ago

2.0.0-alpha.58

2 years ago

2.0.0-alpha.57

2 years ago

2.0.0-alpha.56

2 years ago

2.0.0-alpha.44

2 years ago

2.0.0-alpha.43

2 years ago

2.0.0-alpha.41

2 years ago

2.0.0-alpha.40

2 years ago

2.0.0-alpha.49

2 years ago

2.0.0-alpha.48

2 years ago

2.0.0-alpha.47

2 years ago

2.0.0-alpha.46

2 years ago

2.0.0-alpha.45

2 years ago

2.0.0-alpha.39

2 years ago

2.0.0-alpha.38

2 years ago

2.0.0-alpha.37

2 years ago

2.0.0-alpha.36

2 years ago

1.43.0

2 years ago

1.41.1-alpha.41

2 years ago

1.37.0

2 years ago

1.35.0

2 years ago

1.37.1

2 years ago

1.39.0

2 years ago

1.36.1

2 years ago

1.34.0

2 years ago

1.38.0

2 years ago

1.33.1

2 years ago

1.31.3

3 years ago

1.29.0

3 years ago

1.27.1

3 years ago

1.32.0

3 years ago

1.30.0

3 years ago

1.30.1

3 years ago

1.26.0

3 years ago

1.28.1

3 years ago

1.28.0

3 years ago

1.31.1

3 years ago

1.33.0

2 years ago

1.31.2

3 years ago

1.31.0

3 years ago

1.15.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.13.0

3 years ago

1.0.0

3 years ago

1.12.0

3 years ago

1.19.0

3 years ago

1.18.0

3 years ago

1.17.0

3 years ago

1.16.0

3 years ago

1.14.2

3 years ago

1.9.0

3 years ago

1.8.0

3 years ago

1.7.1

3 years ago

1.7.0

3 years ago

1.6.0

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

0.16.3

3 years ago

0.16.4

3 years ago

1.21.0

3 years ago

1.22.0

3 years ago

1.20.0

3 years ago

1.24.1

3 years ago

1.25.1

3 years ago

1.23.0

3 years ago

1.24.0

3 years ago

1.23.1

3 years ago

1.11.0

3 years ago

1.10.0

3 years ago

0.16.2

3 years ago

0.16.1

3 years ago

0.16.0

3 years ago

0.15.1

3 years ago

0.15.0

3 years ago

0.14.2

3 years ago

0.14.1

3 years ago

0.14.0

3 years ago

0.13.0

3 years ago

0.12.0

3 years ago

0.11.1

3 years ago

0.10.0

3 years ago

0.9.0

3 years ago