# nest-crdt-tools

> Tools to more easily use nested CRDTs

Latest version **1.0.0** (published 2022-05-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install nest-crdt-tools
pnpm add nest-crdt-tools
yarn add nest-crdt-tools
bun add nest-crdt-tools
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2022-05-29 |
| First published | 2022-05-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 76.1 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | Maximilian Seitz |
| Maintainers | maximilian-seitz |
| Keywords | CRDT |

## Links

- npm: https://www.npmjs.com/package/nest-crdt-tools
- Repository: https://github.com/Maximilian-Seitz/nest-crdt-tools
- Homepage: https://github.com/Maximilian-Seitz/nest-crdt-tools#readme
- Issues: https://github.com/Maximilian-Seitz/nest-crdt-tools/issues
- npm.io page: https://npm.io/package/nest-crdt-tools

## Dependencies (2)

- [uuid](https://npm.io/package/uuid.md) ^8.3.2
- [nest-crdt](https://npm.io/package/nest-crdt.md) 1.0.0

## Recent versions

- 1.0.0 (latest) — 2022-05-29

## README

# Nested CRDT Tools

Provides tools to use with the `nest-crdt` package,
implementing a `MessageHandler` (see `CachedMessageHandler`),
which allows for different broadcasts (see `MessageDistributor`).
Implementations for some broadcasts are also provided,
which usually rely on a network (see `Network`),
for which also exist some implementations.

Additionally, a wrapper for managing CRDTs is also provided,
offering a simple interface to create or request CRDTs
(see `CRDTManager`).


## Broadcasts

Following broadcasts are implemented:
- Best-Effort-Broadcast (see `BestEffortMessageDistributor`)
- Byzantine-Fault-Tolerant Reliable-Broadcast (see `ReliableMessageDistributor`)
- Some other implementations, which allow for local distribution (see `LocalMessageDistributor`),
  or easier implementation of broadcast algorithms (see `NetworkMessageDistributor`),
  and an abstract implementation, which handles listeners (see `GeneralMessageDistributor`)


## Networks

Following networks are implemented:
- `TCPNetwork`
- `EncryptedTCPNetwork`
- An `HTTPNetwork` can be found in the `nest-crdt-tools-http` package
  (segregated due to its reliance on `express`)


## Example

A usage example can be found in the `nest-crdt-example` package.


## Building

To build this project first run `npm install` to install the node libraries,
then run `npm run build`, to invoke the TypeScript compiler.

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