interactionfreepy


Nameinteractionfreepy JSON
Version 1.8.1 PyPI version JSON
download
home_pagehttps://github.com/hwaipy/InteractionFreePy
SummaryA intuitive and cross-languige RCP lib for Python.
upload_time2025-10-09 17:37:26
maintainerNone
docs_urlNone
authorHwaipy
requires_python>=3.8
licensegpl-3.0
keywords msgpack zeromq zmq 0mq rcp cross-languige
VCS
bugtrack_url
requirements msgpack tornado pyzmq
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)
[![Documentation Status](https://readthedocs.org/projects/interactionfreepy/badge/?version=latest)](https://interactionfreepy.readthedocs.io/en/latest/?badge=latest)
[![](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, [MessagePack](https://msgpack.org) is used for binary serialization. 

Please refer to [here](https://interactionfreepy.readthedocs.io/en/latest/index.html) for the full doc.


## Quick Start

 **Install**

```shell
$ pip install interactionfreepy
```

**Start the broker**

```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 server**

```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": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "msgpack, zeromq, zmq, 0mq, rcp, cross-languige",
    "author": "Hwaipy",
    "author_email": "hwaipy@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/5f/71/9362ebc9735e5e1abf4dd92bb407d5459399512357a1f6962c1dc95a0fd1/interactionfreepy-1.8.1.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[![Documentation Status](https://readthedocs.org/projects/interactionfreepy/badge/?version=latest)](https://interactionfreepy.readthedocs.io/en/latest/?badge=latest)\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, [MessagePack](https://msgpack.org) is used for binary serialization. \n\nPlease refer to [here](https://interactionfreepy.readthedocs.io/en/latest/index.html) for the full doc.\n\n\n## Quick Start\n\n **Install**\n\n```shell\n$ pip install interactionfreepy\n```\n\n**Start the broker**\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 server**\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.8.1",
    "project_urls": {
        "Download": "https://github.com/hwaipy/InteractionFreePy/archive/v1.8.1.tar.gz",
        "Homepage": "https://github.com/hwaipy/InteractionFreePy"
    },
    "split_keywords": [
        "msgpack",
        " zeromq",
        " zmq",
        " 0mq",
        " rcp",
        " cross-languige"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "38feeb1fb3076af51ed7f6e67d0f0c8e93920581509fdff2f54975d14df128d3",
                "md5": "c8194374194858e16b56af17776bac0d",
                "sha256": "b54a6eaca50eb4ca8c883ef2d8dd1c7a13bdd93ab0e46ee27ea6cab6535a2b47"
            },
            "downloads": -1,
            "filename": "interactionfreepy-1.8.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c8194374194858e16b56af17776bac0d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 36280,
            "upload_time": "2025-10-09T17:37:26",
            "upload_time_iso_8601": "2025-10-09T17:37:26.152781Z",
            "url": "https://files.pythonhosted.org/packages/38/fe/eb1fb3076af51ed7f6e67d0f0c8e93920581509fdff2f54975d14df128d3/interactionfreepy-1.8.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5f719362ebc9735e5e1abf4dd92bb407d5459399512357a1f6962c1dc95a0fd1",
                "md5": "00993314aa1673ecd949325ab89fb07c",
                "sha256": "dd7f6d295e99a099ddf269a8a767a6ade230c86b5f3e4906f8529b672608dc01"
            },
            "downloads": -1,
            "filename": "interactionfreepy-1.8.1.tar.gz",
            "has_sig": false,
            "md5_digest": "00993314aa1673ecd949325ab89fb07c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 32036,
            "upload_time": "2025-10-09T17:37:26",
            "upload_time_iso_8601": "2025-10-09T17:37:26.989838Z",
            "url": "https://files.pythonhosted.org/packages/5f/71/9362ebc9735e5e1abf4dd92bb407d5459399512357a1f6962c1dc95a0fd1/interactionfreepy-1.8.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-09 17:37:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hwaipy",
    "github_project": "InteractionFreePy",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "msgpack",
            "specs": []
        },
        {
            "name": "tornado",
            "specs": []
        },
        {
            "name": "pyzmq",
            "specs": []
        }
    ],
    "lcname": "interactionfreepy"
}
        
Elapsed time: 1.54394s