{"id":16699350,"url":"https://github.com/ousttrue/tornado-msgpack","last_synced_at":"2025-04-10T03:41:50.858Z","repository":{"id":136461173,"uuid":"10394987","full_name":"ousttrue/tornado-msgpack","owner":"ousttrue","description":"Yet another MessagePack RPC for Python","archived":false,"fork":false,"pushed_at":"2013-08-27T10:25:35.000Z","size":164,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T05:01:41.715Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ousttrue.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-31T00:35:57.000Z","updated_at":"2021-09-22T02:08:08.000Z","dependencies_parsed_at":"2023-03-13T06:30:48.823Z","dependency_job_id":null,"html_url":"https://github.com/ousttrue/tornado-msgpack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ousttrue%2Ftornado-msgpack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ousttrue%2Ftornado-msgpack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ousttrue%2Ftornado-msgpack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ousttrue%2Ftornado-msgpack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ousttrue","download_url":"https://codeload.github.com/ousttrue/tornado-msgpack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248154964,"owners_count":21056541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T18:06:42.066Z","updated_at":"2025-04-10T03:41:50.839Z","avatar_url":"https://github.com/ousttrue.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"tornado-msgpack\n===============\n\nYet another MessagePack RPC for Python\n\nhistory\n-------\n* 20130827 0.4 add logging\n\nsamples\n-------\n\ndemo\n++++\n::\n\n    #!/usr/bin/env python\n\n    port=28080\n\n    import tornado_msgpack\n    dispatcher=tornado_msgpack.Dispatcher()\n    def add(a, b):\n        return a+b\n    dispatcher.add_handler(\"add\", add)\n\n    with tornado_msgpack.ServerLoop(\"\", port, dispatcher.on_message):\n        with tornado_msgpack.ClientLoop(\"localhost\", port) as client:\n            print(client.call_sync(\"add\", 3, 4))\n\nserver\n++++++\n::\n\n    #!/usr/bin/env python\n\n    import tornado_msgpack\n    import tornado\n\n    port=18080\n\n    # dispatcher\n    dispatcher=tornado_msgpack.Dispatcher()\n    def add(a, b):\n        return a+b\n    dispatcher.add_handler(\"add\", add)\n\n    # server\n    server_loop=tornado.ioloop.IOLoop()\n    server=tornado_msgpack.Server(server_loop, dispatcher.on_message)\n    server.listen(port)\n\n    import signal\n    def handler(signum, frame):\n        server_loop.stop()\n    signal.signal(signal.SIGINT, handler)\n\n    try:\n        # blocking...\n        server_loop.start()\n    except ex as KeyboardInterrupt:\n        pass\n \nclient\n++++++\n::\n\n    #!/usr/bin/env python\n    import tornado_msgpack\n    import tornado\n    import threading\n\n    host=\"127.0.0.1\"\n    port=18080\n\n    client_loop=tornado.ioloop.IOLoop()\n    client_thread=threading.Thread(target=lambda : client_loop.start())\n\n    # connecion status\n    def on_status(session):\n        print(\"status changed: \"+session.status)\n    client=tornado_msgpack.Client(client_loop, on_status)\n\n    client.session.connect(host, port)\n    try:\n        client_thread.start()\n\n        # sync\n        result=client.call_sync(\"add\", 3, 4)\n\n        # async\n        future=client.call_async(\"add\", 5, 6)\n        future.join() # wait server respone\n        msgpack_rpc=future.message\n        result=msgpack_rpc[3]\n\n        # async_with_callback\n        def on_receive(msgpack_rpc):\n            print(msgpack_rpc)\n        future=client.call_async_with_callback(on_receive, \"add\", 5, 6)\n        future.join() # wait server respone\n\n    finally:\n        client_loop.stop()\n        client_thread.join()\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fousttrue%2Ftornado-msgpack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fousttrue%2Ftornado-msgpack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fousttrue%2Ftornado-msgpack/lists"}