1 | # Comunica Core
|
2 |
|
3 | [](https://www.npmjs.com/package/@comunica/core)
|
4 |
|
5 | The core framework of Comunica, which consists of a **actors**, **buses**, and **mediators**.
|
6 |
|
7 | **[Click here to learn more about this core architecture](https://comunica.dev/docs/modify/advanced/architecture_core/).**
|
8 |
|
9 | This module is part of the [Comunica framework](https://github.com/comunica/comunica),
|
10 | and should only be used by [developers that want to build their own query engine](https://comunica.dev/docs/modify/).
|
11 |
|
12 | [Click here if you just want to query with Comunica](https://comunica.dev/docs/query/).
|
13 |
|
14 | ## Install
|
15 |
|
16 | ```bash
|
17 | $ yarn add @comunica/core
|
18 | ```
|
19 |
|
20 | ## Exported classes
|
21 |
|
22 | * [`Actor`](https://comunica.github.io/comunica/classes/_comunica_core.Actor.html): An actor can act on messages of certain types and provide output of a certain type.
|
23 | * [`Bus`](https://comunica.github.io/comunica/classes/_comunica_core.Bus.html): A publish-subscribe bus for sending actions to actors to test whether or not they can run an action.
|
24 | * [`Mediator`](https://comunica.github.io/comunica/classes/_comunica_core.Mediator.html): A mediator can mediate an action over a bus of actors.
|
25 | * [`ActionObserver`](https://comunica.github.io/comunica/classes/_comunica_core.ActionObserver.html): An ActionObserver can passively listen to Actor.run inputs and outputs for all actors on a certain bus.
|
26 | * [`BusIndexed`](https://comunica.github.io/comunica/classes/_comunica_core.BusIndexed.html): A bus that indexes identified actors, so that actions with a corresponding identifier can be published more efficiently.
|
27 | * [`Logger`](https://comunica.github.io/comunica/classes/_comunica_types.Logger.html): A logger accepts messages from different levels and emits them in a certain way.
|
28 | * [`ActionContext`](https://comunica.github.io/comunica/classes/_comunica_core.ActionContext.html): Implementation of IActionContext using Immutable.js.
|
29 | * [`TestResult`])(https://comunica.github.io/comunica/classes/_comunica_core.TestResult.html): A test result represents the result of an actor test that can either be passed or failed.
|