interactionfreepy


Nameinteractionfreepy JSON
Version 1.6.11 PyPI version JSON
download
home_pagehttps://github.com/hwaipy/InteractionFreePy
SummaryA intuitive and cross-languige RCP lib for Python.
upload_time2024-01-30 05:37:25
maintainer
docs_urlNone
authorHwaipy
requires_python>=3.7
licensegpl-3.0
keywords msgpack zeromq zmq 0mq rcp cross-languige
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            
# InteractionFree for Python

[![](https://img.shields.io/github/workflow/status/hwaipy/InteractionFreePy/Tests)](https://github.com/hwaipy/InteractionFreePy/actions?query=workflow%3ATests)
[![](https://img.shields.io/pypi/v/interactionfreepy)](https://pypi.org/project/interactionfreepy/)
[![](https://img.shields.io/pypi/pyversions/interactionfreepy)](https://pypi.org/project/interactionfreepy/)
[![Coverage badge](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/hwaipy/InteractionFreePy/python-coverage-comment-action-data/endpoint.json)](https://github.com/hwaipy/InteractionFreePy/tree/python-coverage-comment-action-data)

[InteractionFree]() is a remote procedure call (RPC) protocol based on [ZeroMQ](https://zeromq.org). It allows the developers to build their own distributed and cross-languige program easily. The protocol is config-less and extremly easy to use. Currently, [Msgpack](https://msgpack.org) is used for binary serialization. InteractionFree implementation is already available in various languages (including Scala, Javascript, Arduino). More infomation will be available soon.

- InteractionFree specification: to be drafted.



## Quick Start

 **Install**

```shell
$ pip install interactionfreepy
```

**Start the server**

```python
from interactionfreepy import IFBroker

broker = IFBroker('tcp://*:port')
IFLoop.join()
```

replace `port` to any port number that is available.

`IFLoop.join()` is a utility function to prevent the program from finishing.

**Start a worker**

```python
from interactionfreepy import IFWorker

class Target():
    def tick(self, message):
        return "tack %s" % message

worker = IFWorker('tcp://address:port', 'TargetService', Target())
IFLoop.join()
```

replace `address` and `port` to the server's net address and port.

**Start a client**

```python
from interactionfreepy import IFWorker

client = IFWorker('tcp://address:port')
print(client.TargetService.tick('now'))
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hwaipy/InteractionFreePy",
    "name": "interactionfreepy",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "msgpack,zeromq,zmq,0mq,rcp,cross-languige",
    "author": "Hwaipy",
    "author_email": "hwaipy@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/04/fe/441a265d99de7826fe9913ec182492324760057d3b0442277117d1f52baa/interactionfreepy-1.6.11.tar.gz",
    "platform": null,
    "description": "\n# InteractionFree for Python\n\n[![](https://img.shields.io/github/workflow/status/hwaipy/InteractionFreePy/Tests)](https://github.com/hwaipy/InteractionFreePy/actions?query=workflow%3ATests)\n[![](https://img.shields.io/pypi/v/interactionfreepy)](https://pypi.org/project/interactionfreepy/)\n[![](https://img.shields.io/pypi/pyversions/interactionfreepy)](https://pypi.org/project/interactionfreepy/)\n[![Coverage badge](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/hwaipy/InteractionFreePy/python-coverage-comment-action-data/endpoint.json)](https://github.com/hwaipy/InteractionFreePy/tree/python-coverage-comment-action-data)\n\n[InteractionFree]() is a remote procedure call (RPC) protocol based on [ZeroMQ](https://zeromq.org). It allows the developers to build their own distributed and cross-languige program easily. The protocol is config-less and extremly easy to use. Currently, [Msgpack](https://msgpack.org) is used for binary serialization. InteractionFree implementation is already available in various languages (including Scala, Javascript, Arduino). More infomation will be available soon.\n\n- InteractionFree specification: to be drafted.\n\n\n\n## Quick Start\n\n **Install**\n\n```shell\n$ pip install interactionfreepy\n```\n\n**Start the server**\n\n```python\nfrom interactionfreepy import IFBroker\n\nbroker = IFBroker('tcp://*:port')\nIFLoop.join()\n```\n\nreplace `port` to any port number that is available.\n\n`IFLoop.join()` is a utility function to prevent the program from finishing.\n\n**Start a worker**\n\n```python\nfrom interactionfreepy import IFWorker\n\nclass Target():\n    def tick(self, message):\n        return \"tack %s\" % message\n\nworker = IFWorker('tcp://address:port', 'TargetService', Target())\nIFLoop.join()\n```\n\nreplace `address` and `port` to the server's net address and port.\n\n**Start a client**\n\n```python\nfrom interactionfreepy import IFWorker\n\nclient = IFWorker('tcp://address:port')\nprint(client.TargetService.tick('now'))\n```\n\n",
    "bugtrack_url": null,
    "license": "gpl-3.0",
    "summary": "A intuitive and cross-languige RCP lib for Python.",
    "version": "1.6.11",
    "project_urls": {
        "Download": "https://github.com/hwaipy/InteractionFreePy/archive/v1.6.11.tar.gz",
        "Homepage": "https://github.com/hwaipy/InteractionFreePy"
    },
    "split_keywords": [
        "msgpack",
        "zeromq",
        "zmq",
        "0mq",
        "rcp",
        "cross-languige"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2f5f9494ac9015bc3033a569e1f9d40419625a4ef67c93167d3c640b0f291931",
                "md5": "5bca04b62379e00bd5b367c5c46140d4",
                "sha256": "ba8a2c1d21631e2216551ec54d2e92c1aaec3433451116a69106c543dfa167b7"
            },
            "downloads": -1,
            "filename": "interactionfreepy-1.6.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5bca04b62379e00bd5b367c5c46140d4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 34176,
            "upload_time": "2024-01-30T05:37:24",
            "upload_time_iso_8601": "2024-01-30T05:37:24.605590Z",
            "url": "https://files.pythonhosted.org/packages/2f/5f/9494ac9015bc3033a569e1f9d40419625a4ef67c93167d3c640b0f291931/interactionfreepy-1.6.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04fe441a265d99de7826fe9913ec182492324760057d3b0442277117d1f52baa",
                "md5": "2c4943ef39b6510e6e968b199f6bc952",
                "sha256": "7fd27c3ca4d2ddb0ea144591351d71892e6bf40af7541013ee004a41e62d761b"
            },
            "downloads": -1,
            "filename": "interactionfreepy-1.6.11.tar.gz",
            "has_sig": false,
            "md5_digest": "2c4943ef39b6510e6e968b199f6bc952",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 30160,
            "upload_time": "2024-01-30T05:37:25",
            "upload_time_iso_8601": "2024-01-30T05:37:25.966179Z",
            "url": "https://files.pythonhosted.org/packages/04/fe/441a265d99de7826fe9913ec182492324760057d3b0442277117d1f52baa/interactionfreepy-1.6.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-30 05:37:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hwaipy",
    "github_project": "InteractionFreePy",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [],
    "lcname": "interactionfreepy"
}
        
Elapsed time: 7.07715s