{"id":18456113,"url":"https://github.com/jjeffcaii/deno-zeromq","last_synced_at":"2025-08-01T13:34:52.816Z","repository":{"id":54861853,"uuid":"329489908","full_name":"jjeffcaii/deno-zeromq","owner":"jjeffcaii","description":"Pure Deno bindings for ZeroMQ.","archived":false,"fork":false,"pushed_at":"2021-01-24T15:26:32.000Z","size":47,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-25T23:30:10.919Z","etag":null,"topics":["deno","zeromq","zmq"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jjeffcaii.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}},"created_at":"2021-01-14T02:50:57.000Z","updated_at":"2025-06-28T04:02:52.000Z","dependencies_parsed_at":"2022-08-14T05:00:54.315Z","dependency_job_id":null,"html_url":"https://github.com/jjeffcaii/deno-zeromq","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jjeffcaii/deno-zeromq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjeffcaii%2Fdeno-zeromq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjeffcaii%2Fdeno-zeromq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjeffcaii%2Fdeno-zeromq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjeffcaii%2Fdeno-zeromq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjeffcaii","download_url":"https://codeload.github.com/jjeffcaii/deno-zeromq/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjeffcaii%2Fdeno-zeromq/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268231595,"owners_count":24217035,"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-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["deno","zeromq","zmq"],"created_at":"2024-11-06T08:10:16.253Z","updated_at":"2025-08-01T13:34:52.761Z","avatar_url":"https://github.com/jjeffcaii.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# deno-zeromq\n\n![GitHub Workflow Status](https://github.com/jjeffcaii/deno-zeromq/workflows/Deno/badge.svg)\n[![License](https://img.shields.io/github/license/jjeffcaii/deno-zeromq.svg)](https://github.com/jjeffcaii/deno-zeromq/blob/master/LICENSE)\n[![GitHub Release](https://img.shields.io/github/release-pre/jjeffcaii/deno-zeromq.svg)](https://github.com/jjeffcaii/deno-zeromq/releases)\n\nDeno bindings for ZeroMQ. (UNFINISHED! DO NOT USE IT!!!)\n\n## Examples\n\n### Request/Reply\n\n\u003e Reply\n\n```typescript\nimport * as zmq from \"https://deno.land/x/zeromq/mod.ts\";\n\nconst socket = zmq.Reply();\nawait socket.bind(\"tcp://127.0.0.1:5555\");\n\nfor await (const [req] of socket) {\n  console.log(`Receive: [${new TextDecoder().decode(req as Uint8Array)}]`);\n  socket.send(\"World\");\n}\n```\n\n\u003e Request\n\n```typescript\nimport * as zmq from \"https://deno.land/x/zeromq/mod.ts\";\n\nconst socket = zmq.Request();\nawait socket.connect(\"tcp://127.0.0.1:5555\");\n\nawait socket.send(\"Hello\");\n\nconst [res] = await socket.receive();\nconsole.log(`Receive: ${new TextDecoder().decode(res as Uint8Array)}`);\n```\n\n### Pub/Sub\n\n\u003e Publish\n\n```typescript\nimport * as zmq from \"https://deno.land/x/zeromq/mod.ts\";\n\nconst socket = zmq.Publish();\nawait socket.bind(\"tcp://127.0.0.1:5555\");\n\nwhile (true) {\n  await socket.send(\"kitty cats\", `meow!`);\n  await new Promise((resolve) =\u003e setTimeout(resolve, 500));\n}\n```\n\n\u003e Subscribe\n\n```typescript\nimport * as zmq from \"https://deno.land/x/zeromq/mod.ts\";\n\nconst sock = zmq.Subscribe();\nawait sock.connect(\"tcp://127.0.0.1:5555\");\nawait sock.subscribe(\"kitty cats\");\n\nconst dec = new TextDecoder();\n\nfor await (const [topic, msg] of sock) {\n  console.log(\n    `topic=${dec.decode(topic as Uint8Array)}, msg=${\n      dec.decode(msg as Uint8Array)\n    }`,\n  );\n}\n```\n\n## TODO\n\n- [x] Basic ZMTP Framing\n- [ ] ZMTP-NULL\n- [ ] ZMTP-PLAIN\n- [ ] ZMTP-CURVE\n- [x] REQ/REP\n- [x] PUB/SUB\n- [ ] PUSH/PULL\n- [ ] ...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjeffcaii%2Fdeno-zeromq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjeffcaii%2Fdeno-zeromq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjeffcaii%2Fdeno-zeromq/lists"}