Metadata-Version: 2.1
Name: scimma-client
Version: 0.0.4a3
Summary: A client library for SCiMMA
Home-page: https://github.com/scimma/client_library
Author: Patrick Godwin
Author-email: patrick.godwin@psu.edu
License: BSD 3-Clause
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Classifier: License :: OSI Approved :: BSD License
Requires-Python: >=3.6.*
Description-Content-Type: text/markdown
Requires-Dist: adc (>=0.0.3)
Requires-Dist: xmltodict (>=0.9.0)
Requires-Dist: dataclasses ; python_version < "3.7"
Provides-Extra: dev
Requires-Dist: pytest (<5.4,>=5.0) ; extra == 'dev'
Requires-Dist: pytest-console-scripts ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: flake8-black ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: sphinxcontrib-programoutput ; extra == 'docs'

SCiMMA Client
=============

![](https://github.com/scimma/client_library/workflows/build/badge.svg)

**scimma-client** is a pub-sub client library for Multimessenger Astrophysics.

## Quickstart

Publish a GCN to Kafka:

```
scimma publish kafka://hostname:port/gcn mygcn.gcn3
```

Subscribe to the earliest offset of a Kafka topic and print to stdout:
```
scimma subscribe kafka://hostname:port/gcn -e
```

An example RFC 822 formatted GCN circular (`example.gcn3`) is provided in
`tests/data`.

Client [configuration](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md)
properties can be passed to `scimma publish` via `-X property=value` or in a configuration
file specified by `-F <config-file>`, mimicking the behavior of `kafkacat`. This can be
used to connect to a Kafka broker with SSL authentication enabled, for example.

## Installation

You can install scimma-client either via pip, conda, or from source.

To install with pip:

```
pip install -U scimma-client
```

To install with conda, you must use the channel from the SCiMMA Anaconda organization:

```
conda install --channel scimma scimma-client
```

To install from source:

```
tar -xzf scimma-client-x.y.z.tar.gz
cd scimma-client-x.y.z
python setup.py install
```

## Development

A Makefile is provided to ease in testing, deployment and generating documentation.

A list of commands can be listed with `make help`.

In addition, two extras are provided when installing the scimma client that installs
the required test and documentation libraries:

```
pip install -U scimma-client[dev,docs]
```

To mark a new version, use Github tags to mark your commit with a [semver](https://semver.org/) version:
```
git tag v0.0.1
```

To release a new version and upload to package repositories, push your tag after pushing your commit:
```
git push --tags
```

