# @hat-core/juggler

> Hat juggler client library

Latest version **0.4.1-dev20210707** (published 2021-07-07) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @hat-core/juggler
pnpm add @hat-core/juggler
yarn add @hat-core/juggler
bun add @hat-core/juggler
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.1-dev20210707 |
| Published | 2021-07-07 |
| First published | 2020-04-06 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 14.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | bozo.kopic |

## Links

- npm: https://www.npmjs.com/package/@hat-core/juggler
- Repository: hat-open/hat-core
- Homepage: https://github.com/hat-open/hat-core
- Issues: https://github.com/hat-open/hat-core/issues
- npm.io page: https://npm.io/package/@hat-core/juggler

## Dependencies (2)

- [jiff](https://npm.io/package/jiff.md) *
- [@hat-core/util](https://npm.io/package/@hat-core/util.md) ~0.4.1-dev20210707

## Recent versions

- 0.4.1-dev20210707 (latest) — 2021-07-07
- 0.4.0-dev20200812 — 2020-08-12
- 0.4.0-dev20200716 — 2020-07-16
- 0.4.0-dev20200410 — 2020-04-10
- 0.4.0-dev20200406 — 2020-04-06

## README

# Hat Core - remote control and monitoring framework core

Hat Open is open-source framework of tools and libraries for developing
applications used for remote monitoring, control and management of
intelligent electronic devices such as IoT devices, PLCs, industrial
automation or home automation systems.

Hat Core is part of Hat Open providing collection of components and
libraries on which Hat Open system is based.

Development of Hat Open and associated repositories is sponsored by
Končar - Power Plant and Electric Traction Engineering Inc. (Končar KET
- <https://www.koncar-ket.hr>).

For more information see:

> -   Hat Core homepage - <https://core.hat-open.com>
> -   Hat Core documentation - <https://core.hat-open.com/docs>
> -   Hat Core git repository -
>     <https://github.com/hat-open/hat-core.git>
> -   Hat Core issues - <https://github.com/hat-open/hat-core/issues>

::: warning
::: title
Warning
:::

This project is currently in state of active development. Features,
functionality and API are unstable.
:::

## Installation

Hat Open consists of multiple interconnected parts. Each part implements
a specific functionality. For easier reusability, provided
implementation is split into multiple packages:

### Python packages

Python packages require Python 3.8 or 3.9 and can be installed with
\`pip\`:

    $ pip install <package-name>

where `package-name` is one of following:

> -   [hat-util](https://pypi.org/project/hat-util)
>
>     > Utility library
>
> -   [hat-aio](https://pypi.org/project/hat-aio)
>
>     > Async utility library
>
> -   [hat-json](https://pypi.org/project/hat-json)
>
>     > JSON library
>
> -   [hat-qt](https://pypi.org/project/hat-qt)
>
>     > Qt utility library
>
> -   [hat-peg](https://pypi.org/project/hat-peg)
>
>     > Parsing expression grammar
>
> -   [hat-stc](https://pypi.org/project/hat-stc)
>
>     > Statechart engine
>
> -   [hat-sbs](https://pypi.org/project/hat-sbs)
>
>     > Simple binary serialization
>
> -   [hat-chatter](https://pypi.org/project/hat-chatter)
>
>     > Chatter communication protocol
>
> -   [hat-juggler](https://pypi.org/project/hat-juggler)
>
>     > Juggler communication protocol
>
> -   [hat-duktape](https://pypi.org/project/hat-duktape)
>
>     > Python Duktape JS wrapper
>
> -   [hat-sqlite3](https://pypi.org/project/hat-sqlite3)
>
>     > Hat specific sqlite3 build
>
> -   [hat-asn1](https://pypi.org/project/hat-asn1)
>
>     > ASN.1 parser and encoder
>
> -   [hat-drivers](https://pypi.org/project/hat-drivers)
>
>     > Communication drivers
>
> -   [hat-syslog](https://pypi.org/project/hat-syslog)
>
>     > Syslog server and logging handler
>
> -   [hat-orchestrator](https://pypi.org/project/hat-orchestrator)
>
>     > Simple cross-platform daemon/service manager
>
> -   [hat-monitor](https://pypi.org/project/hat-monitor)
>
>     > Redundancy and service discovery server
>
> -   [hat-event](https://pypi.org/project/hat-event)
>
>     > Event pub/sub communication and storage
>
> -   [hat-gateway](https://pypi.org/project/hat-gateway)
>
>     > Remote communication device gateway
>
> -   [hat-gui](https://pypi.org/project/hat-gui)
>
>     > GUI server

### JavaScript packages

JavaScript packages can be installed with \`npm\`:

    $ npm install <package-name>

where `package-name` is one of following:

> -   [\@hat-core/util](https://www.npmjs.com/package/@hat-core/util)
>
>     > Utility module
>
> -   [\@hat-core/renderer](https://www.npmjs.com/package/@hat-core/renderer)
>
>     > Virtual DOM renderer
>
> -   [\@hat-core/future](https://www.npmjs.com/package/@hat-core/future)
>
>     > Async Future implementation
>
> -   [\@hat-core/juggler](https://www.npmjs.com/package/@hat-core/juggler)
>
>     > Juggler communication protocol client library

## Development

Platforms supported as development environment include Linux (possibly
other POSIX systems) and Windows (with MSYS2 and CPython).

### Platform specific prerequisites

-   Archlinux:

        $ pacman -S $(< requirements.archlinux.txt)

-   Ubuntu:

        $ apt install $(< requirements.ubuntu.txt)

-   Windows:

        $ pacman -S $(< requirements.msys2.txt)

### Python prerequisites

    $ pip install -r requirements.pip.txt

### Build

Build tool used for Hat is pydoit ([http://pydoit.org/]{.title-ref}). It
is included as one of python prerequisites and should be available after
[pip]{.title-ref} requirements installation.

For listing available doit tasks, use:

    $ doit list

Default task:

    $ doit

creates [dist]{.title-ref} folder containing built packages.

### Documentation

Documentation can be built with:

    $ doit docs

which creates [build/docs]{.title-ref} folder containing documentation.

### Tests

Tests can be run with [doit]{.title-ref} task `test`.

-   Unit tests:

        $ doit test test_unit

-   System tests:

        $ doit test test_sys

-   Performance tests:

        $ doit test test_perf

## License

Copyright 2020-2021 Hat Open AUTHORS

Licensed under the Apache License, Version 2.0 (the \"License\"); you
may not use this file except in compliance with the License. You may
obtain a copy of the License at

> <http://www.apache.org/licenses/LICENSE-2.0>

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an \"AS IS\" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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