Metadata-Version: 2.1
Name: rosny
Version: 0.0.2
Summary: A simple library for building concurrency applications.
Home-page: https://github.com/lRomul/rosny
Author: Ruslan Baikulov
Author-email: ruslan1123@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# rosny

rosny is a simple library for building concurrency systems.

## Installation

From pip:

```bash
pip install rosny
```

From source:

```bash
pip install -U git+https://github.com/lRomul/rosny.git@master
```

## Example

```python
from queue import Queue
from rosny import ThreadStream, ComposeStream


class SenderStream(ThreadStream):
    def __init__(self, queue: Queue):
        super().__init__(loop_rate=30)
        self.queue = queue
        self.count = 0

    def work(self):
        self.queue.put(self.count)
        self.count += 1


class ReceiverStream(ThreadStream):
    def __init__(self, queue: Queue):
        super().__init__()
        self.queue = queue

    def work(self):
        value = self.queue.get(timeout=1)
        self.logger.info(f'{value}')


class MainStream(ComposeStream):
    def __init__(self):
        super().__init__()
        queue = Queue()
        self.sender = SenderStream(queue)
        self.receiver = ReceiverStream(queue)


if __name__ == "__main__":
    stream = MainStream()
    stream.start()
    stream.wait(10)
    stream.stop()
    stream.join()
```


