# @comunica/core

> Lightweight, semantic and modular actor framework

Latest version **5.4.0** (published 2026-09-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install @comunica/core
pnpm add @comunica/core
yarn add @comunica/core
bun add @comunica/core
```

## Health

**Score 60/100 (C)** — status: active.

Positive: has types; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 5.4.0 |
| Published | 2026-09-14 |
| First published | 2018-03-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=14.0 |
| Dependencies | 2 |
| Unpacked size | 173.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 592 |
| Maintainers | joachimvh, rubensworks, rubenverborgh, dexagod, jeswr |
| Keywords | semantic, actor, framework, events, messages |

## Links

- npm: https://www.npmjs.com/package/@comunica/core
- Repository: https://github.com/comunica/comunica
- Homepage: https://comunica.dev/
- Issues: https://github.com/comunica/comunica/issues
- Funding: https://opencollective.com/comunica-association
- npm.io page: https://npm.io/package/@comunica/core

## Dependencies (2)

- [immutable](https://npm.io/package/immutable.md) ^5.1.3
- [@comunica/types](https://npm.io/package/@comunica/types.md) ^5.4.0

## Alternatives

- [@sveltejs/kit](https://npm.io/package/@sveltejs/kit.md) — 2.2M weekly downloads
- [@atlaskit/theme](https://npm.io/package/@atlaskit/theme.md) — 402.0K weekly downloads
- [@tangle-network/brand](https://npm.io/package/@tangle-network/brand.md) — 10.0K weekly downloads
- [seneca](https://npm.io/package/seneca.md) — 7.4K weekly downloads
- [@bsb/base](https://npm.io/package/@bsb/base.md) — 7.2K weekly downloads

## Recent versions

- 5.4.0 (latest) — 2026-09-14
- 4.4.2-alpha.49.0 (next) — 2025-10-22
- 5.3.0 — 2026-07-10
- 5.2.3 — 2026-05-26
- 5.2.2 — 2026-05-03
- 5.2.0 — 2026-04-14
- 5.1.3 — 2026-01-30
- 5.1.0 — 2026-01-16
- 5.0.3 — 2026-01-12
- 5.0.2 — 2026-01-12
- 5.0.0 — 2026-01-08
- 4.5.0 — 2025-11-18
- 4.4.0 — 2025-09-17
- 4.2.0 — 2025-04-29
- 4.1.0 — 2025-02-11
- … 94 more at https://npm.io/package/@comunica/core/versions

## README

# Comunica Core

[![npm version](https://badge.fury.io/js/%40comunica%2Fcore.svg)](https://www.npmjs.com/package/@comunica/core)

The core framework of Comunica, which consists of a **actors**, **buses**, and **mediators**.

**[Click here to learn more about this core architecture](https://comunica.dev/docs/modify/advanced/architecture_core/).**

This module is part of the [Comunica framework](https://github.com/comunica/comunica),
and should only be used by [developers that want to build their own query engine](https://comunica.dev/docs/modify/).

[Click here if you just want to query with Comunica](https://comunica.dev/docs/query/).

## Install

```bash
$ yarn add @comunica/core
```

## Exported classes

* [`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.
* [`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.
* [`Mediator`](https://comunica.github.io/comunica/classes/_comunica_core.Mediator.html): A mediator can mediate an action over a bus of actors.
* [`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.
* [`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.
* [`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.
* [`ActionContext`](https://comunica.github.io/comunica/classes/_comunica_core.ActionContext.html): Implementation of IActionContext using Immutable.js.
* [`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.

---
_Source: https://npm.io/package/@comunica/core · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
