{"id":18851630,"url":"https://github.com/eviltik/evilevents","last_synced_at":"2025-07-22T13:05:28.072Z","repository":{"id":26849757,"uuid":"110536856","full_name":"eviltik/evilevents","owner":"eviltik","description":"A node.js module to handle event based Inter Processes Communication over TCP, socket unix, winsock","archived":false,"fork":false,"pushed_at":"2023-03-04T02:28:14.000Z","size":521,"stargazers_count":1,"open_issues_count":4,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-23T03:15:05.364Z","etag":null,"topics":["cluster","events","ipc","winsock"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eviltik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-13T10:57:33.000Z","updated_at":"2024-06-14T04:31:04.000Z","dependencies_parsed_at":"2024-11-08T03:35:53.309Z","dependency_job_id":"276c8571-bc9b-49f6-b6f6-313d97cd1472","html_url":"https://github.com/eviltik/evilevents","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eviltik/evilevents","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eviltik%2Fevilevents","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eviltik%2Fevilevents/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eviltik%2Fevilevents/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eviltik%2Fevilevents/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eviltik","download_url":"https://codeload.github.com/eviltik/evilevents/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eviltik%2Fevilevents/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266499062,"owners_count":23938782,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cluster","events","ipc","winsock"],"created_at":"2024-11-08T03:35:43.374Z","updated_at":"2025-07-22T13:05:28.040Z","avatar_url":"https://github.com/eviltik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# evilevents\nA node.js module to handle event based Inter Processes Communication\n\n-----------\n![Node.js CI](https://github.com/eviltik/evilevents/workflows/Node.js%20CI/badge.svg)\n[![npm version](https://badge.fury.io/js/evilevents.svg)](https://badge.fury.io/js/evilevents)\n[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)\n[![Dependency Status](https://david-dm.org/eviltik/evilevents.svg)](https://david-dm.org/eviltik/evilevents)\n\n\n-----------\n\nAlternative to \"process.send\" to exchange messages between one or more nodejs childs (fork or process),\non the same machine or remote machines (TCP should be used in this case)\n\nThis module break process.send existing system limits, bypasssing an unfixed bug in nodejs (oct 2017)\nhttps://github.com/nodejs/node/issues/9706\n\n\n-------------------\n\nBy default, json-stream is used, and you stay with it. Got a performance issue with msgpack (see bellow).\n\nOn the same machine, better choice is json-stream over ipc (default)\n\nWith remote machines, better choice is json-stream over tcp\n(you should specify \"transport\" attribute to \"tcp\" for clients and server).\n\n-------------------\n\n**WARNING** about performances if you enable msgpack option !\n(look at number of events and speed. Note that when using msgpack, if you go upper than 1000 events,\nyou should have EPIPE errors, i don't know if my code is fucked, help welcome on this).\n\n-------------\n\nInstallation:\n\n```\nnpm install evilevents\n```\n\n-------------\n\nExamples:\n\n```\ntake a look at examples directory for basic usage\n```\n\n-------------\n\nTests below has been made on\n* Dell Precision 7510\n* 32Go Ram\n* Intel (R) Core(TM) i7-6820HQ\n* CPU @ 2.70Ghz\n* NodeJS v8.7.0 64bits\n\n```\nTAP version 13\n# Subtest: IPC/json-socket bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - ipc: 100000 events sent in 0.313717 sec\n    ok 4 - ipc: send avg speed 16.9 MB/s\n    ok 5 - ipc: 100000 events received back\n    ok 6 - ipc: recv avg speed 1.9 MB/s\n    ok 7 - exit\n    1..7\nok 1 - IPC/json-socket bench # time=3029.013ms\n\n1..1\n# time=3034.874ms\n\nTAP version 13\n# Subtest: TCP/json-socket bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - tcp: 100000 events sent in 0.415147 sec\n    ok 4 - tcp: send avg speed 12.7 MB/s\n    ok 5 - tcp: 100000 events received back\n    ok 6 - tcp: recv avg speed 1.6 MB/s\n    ok 7 - exit\n    1..7\nok 1 - TCP/json-socket bench # time=3629.3ms\n\n1..1\n# time=3635.214ms\n\nTAP version 13\n# Subtest: IPC/msgpack5-stream bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - ipc: 1000 events sent in 0.092335 sec\n    ok 4 - ipc: send avg speed 551.2 KB/s\n    ok 5 - ipc: 1000 events received back\n    ok 6 - ipc: recv avg speed 261.9 KB/s\n    ok 7 - exit\n    1..7\nok 1 - IPC/msgpack5-stream bench # time=504.833ms\n\n1..1\n# time=517.265ms\n\nTAP version 13\n# Subtest: TCP/msgpack5-stream bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - tcp: 1000 events sent in 0.114023 sec\n    ok 4 - tcp: send avg speed 446.3 KB/s\n    ok 5 - tcp: 1000 events received back\n    ok 6 - tcp: recv avg speed 234.7 KB/s\n    ok 7 - exit\n    1..7\nok 1 - TCP/msgpack5-stream bench # time=519.545ms\n\n1..1\n# time=525.174ms\n\n```\n\n\nTests below has been made on the same laptop but inside a virtual machine\n* VirtualBox 5.1.28 r117968\n* 4Go RAM\n* 4 Virtual CPUs\n* Debian 9.2.1\n* NodeJS v8.7.0 64bits\n\n```\nTAP version 13\n# Subtest: IPC/json-socket bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - ipc: 100000 events sent in 0.31976 sec\n    ok 4 - ipc: send avg speed 16.5 MB/s\n    ok 5 - ipc: 100000 events received back\n    ok 6 - ipc: recv avg speed 1.1 MB/s\n    ok 7 - exit\n    1..7\nok 1 - IPC/json-socket bench # time=4821.705ms\n\n1..1\n# time=4827.921ms\nTAP version 13\n# Subtest: TCP/json-socket bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - tcp: 100000 events sent in 0.976478 sec\n    ok 4 - tcp: send avg speed 5.4 MB/s\n    ok 5 - tcp: 100000 events received back\n    ok 6 - tcp: recv avg speed 1.8 MB/s\n    ok 7 - exit\n    1..7\nok 1 - TCP/json-socket bench # time=3123.473ms\n\n1..1\n# time=3129.816ms\nTAP version 13\n# Subtest: IPC/msgpack5-stream bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - ipc: 1000 events sent in 0.182411 sec\n    ok 4 - ipc: send avg speed 279.0 KB/s\nmaster: client \"ipc\" socket error (write EPIPE)\n    ok 5 - ipc: 1000 events received back\n    ok 6 - ipc: recv avg speed 104.4 KB/s\n    ok 7 - exit\n    1..7\nok 1 - IPC/msgpack5-stream bench # time=704.899ms\n\n1..1\n# time=711.049ms\nTAP version 13\n# Subtest: TCP/msgpack5-stream bench\n    ok 1 - connected\n    ok 2 - data sent\n    ok 3 - tcp: 1000 events sent in 0.1694 sec\n    ok 4 - tcp: send avg speed 300.4 KB/s\n    ok 5 - tcp: 1000 events received back\n    ok 6 - tcp: recv avg speed 96.6 KB/s\n    ok 7 - exit\n    1..7\nok 1 - TCP/msgpack5-stream bench # time=736.877ms\n\n1..1\n# time=742.957ms\n```\n\nPlease open a ticket for any improvements/bugs.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feviltik%2Fevilevents","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feviltik%2Fevilevents","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feviltik%2Fevilevents/lists"}