Metadata-Version: 2.1
Name: serverish
Version: 0.8.0
Summary: helpers for server alike projects
Home-page: https://github.com/AkondLab/serverish
Author: Mikołaj Kałuszyński
Requires-Python: >=3.9,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Provides-Extra: messenger
Requires-Dist: aiodns (>=3.0.0,<4.0.0)
Requires-Dist: jsonschema (>=4.19.0,<5.0.0)
Requires-Dist: nats-py (>=2.4.0,<3.0.0) ; extra == "messenger"
Requires-Dist: param (>=1.13.0,<2.0.0)
Project-URL: Repository, https://github.com/AkondLab/serverish
Description-Content-Type: text/markdown

# serverish - helpers for server alike projects
[![CI](https://github.com/AkondLab/serverish/actions/workflows/ci.yml/badge.svg)](https://github.com/AkondLab/serverish/actions/workflows/ci.yml)

## Features
* Component management
* Singletons
* Connections management and diagnostics
* NATS based Messenger

See [`doc` directory](doc/) for more documentation.

## Optional (extras) dependencies
In order to use Messenger, you have to add extra 'messenger' to your `project.toml` serveris dependency, e.g.:
```toml
serverish = {git="https://github.com/AkondLab/serverish.git", extras=["messenger"], branch="master"}
```
or specify dpendency with extras in the `pip` convention: `serverish[messenger]`.
this will install `nats-py` package.

## Changes
* 0.8 Introduces journal publishing/reading API.
* 0.7 Includes progress tracking messages in the Messenger API.
* 0.6 introduces breaking changes in the Messenger API:
  * Convenience functions `get_xxxxx()` returning publishers/readers are synchronous now. Remove `await`-ing for their results.
  * Change of signature of the callback for `MsgRpcResponder.register_function` for `Rpc->None`.  


## Credits
This package uses some code and ideas from the [rich](https://github.com/Textualize/rich) package (Copyright (c) 2020 Will McGugan).


