{"id":13458735,"url":"https://github.com/zeromq/jeromq","last_synced_at":"2025-05-13T15:07:52.787Z","repository":{"id":4143916,"uuid":"5257374","full_name":"zeromq/jeromq","owner":"zeromq","description":"JeroMQ is a pure Java implementation of the ZeroMQ messaging library, offering high-performance asynchronous messaging for distributed or concurrent applications.","archived":false,"fork":false,"pushed_at":"2025-03-02T22:46:28.000Z","size":4122,"stargazers_count":2390,"open_issues_count":100,"forks_count":489,"subscribers_count":160,"default_branch":"master","last_synced_at":"2025-04-22T11:42:03.223Z","etag":null,"topics":["dealerrouter","jeromq","libzmq","messaging","networking","pubsub","pushpull","reqrep","streaming","zeromq"],"latest_commit_sha":null,"homepage":"https://zeromq.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeromq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-08-01T09:28:37.000Z","updated_at":"2025-04-21T13:13:00.000Z","dependencies_parsed_at":"2023-07-06T14:16:43.467Z","dependency_job_id":"cd5dde76-7961-4dc5-a9bf-6c637ae46be7","html_url":"https://github.com/zeromq/jeromq","commit_stats":{"total_commits":981,"total_committers":88,"mean_commits":"11.147727272727273","dds":0.7696228338430173,"last_synced_commit":"30b2bf4e1c7332108497db7e4125cd8b15113ea4"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjeromq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjeromq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjeromq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjeromq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeromq","download_url":"https://codeload.github.com/zeromq/jeromq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252577020,"owners_count":21770721,"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":["dealerrouter","jeromq","libzmq","messaging","networking","pubsub","pushpull","reqrep","streaming","zeromq"],"created_at":"2024-07-31T09:00:56.202Z","updated_at":"2025-05-05T21:09:56.347Z","avatar_url":"https://github.com/zeromq.png","language":"Java","readme":"\n# JeroMQ\n\nPure Java implementation of libzmq (http://zeromq.org).\n\n[![CircleCI](https://circleci.com/gh/zeromq/jeromq.svg?style=svg)](https://circleci.com/gh/zeromq/jeromq)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=zeromq_jeromq\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=zeromq_jeromq)\n[![Coverage Status](https://coveralls.io/repos/github/zeromq/jeromq/badge.svg?branch=master)](https://coveralls.io/github/zeromq/jeromq?branch=master)\n[![Maven Central](https://img.shields.io/maven-central/v/org.zeromq/jeromq.svg)](https://maven-badges.herokuapp.com/maven-central/org.zeromq/jeromq)\n[![Javadocs](http://www.javadoc.io/badge/org.zeromq/jeromq.svg)](http://www.javadoc.io/doc/org.zeromq/jeromq)\n\n## Features\n\n* Based on libzmq 4.1.7.\n* ZMTP/3.0 (http://rfc.zeromq.org/spec:23).\n* tcp:// protocol and inproc:// is compatible with zeromq.\n* ipc:// protocol works only between jeromq (uses tcp://127.0.0.1:port internally).\n\n* Securities\n  * [PLAIN](http://rfc.zeromq.org/spec:24).\n  * [CURVE](http://rfc.zeromq.org/spec:25).\n\n* Performance that's not too bad, compared to native libzmq.\n  * 4.5M messages (100B) per sec.\n  * [Performance](https://github.com/zeromq/jeromq/wiki/Performance).\n* Exactly same developer experience with zeromq and jzmq.\n \n* TCP KeepAlive Count, Idle and Interval are known to only work with JVM 13 and later.\n\n## Unsupported\n\n* ipc:// protocol with zeromq. Java doesn't support UNIX domain socket.\n* pgm:// protocol. Cannot find a pgm Java implementation.\n* norm:// protocol. Cannot find a Java implementation.\n* tipc:// protocol. Cannot find a Java implementation.\n\n* GSSAPI mechanism is not yet implemented.\n\n* Interrupting threads is still unsupported: library is NOT Thread.interrupt safe.\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for details about the contribution process and useful development tasks.\n\n## Usage\n\n### Maven\n\nAdd it to your Maven project's `pom.xml`:\n\n```xml\n    \u003cdependency\u003e\n      \u003cgroupId\u003eorg.zeromq\u003c/groupId\u003e\n      \u003cartifactId\u003ejeromq\u003c/artifactId\u003e\n      \u003cversion\u003e0.6.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\n    \u003c!-- for the latest SNAPSHOT --\u003e\n    \u003cdependency\u003e\n      \u003cgroupId\u003eorg.zeromq\u003c/groupId\u003e\n      \u003cartifactId\u003ejeromq\u003c/artifactId\u003e\n      \u003cversion\u003e0.6.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\n    \u003c!-- If you can't find the latest snapshot --\u003e\n    \u003crepositories\u003e\n      \u003crepository\u003e\n        \u003cid\u003esonatype-nexus-snapshots\u003c/id\u003e\n        \u003curl\u003ehttps://oss.sonatype.org/content/repositories/snapshots\u003c/url\u003e\n        \u003creleases\u003e\n          \u003cenabled\u003efalse\u003c/enabled\u003e\n        \u003c/releases\u003e\n        \u003csnapshots\u003e\n          \u003cenabled\u003etrue\u003c/enabled\u003e\n        \u003c/snapshots\u003e\n       \u003c/repository\u003e\n    \u003c/repositories\u003e\n```\n\n### Ant\n\nTo generate an ant build file from `pom.xml`, issue the following command:\n\n```bash\nmvn ant:ant\n```\n\n## Getting started\n\n### Simple example\n\nHere is how you might implement a server that prints the messages it receives\nand responds to them with \"Hello, world!\":\n\n```java\nimport org.zeromq.SocketType;\nimport org.zeromq.ZMQ;\nimport org.zeromq.ZContext;\n\npublic class hwserver\n{\n    public static void main(String[] args) throws Exception\n    {\n        try (ZContext context = new ZContext()) {\n            // Socket to talk to clients\n            ZMQ.Socket socket = context.createSocket(SocketType.REP);\n            socket.bind(\"tcp://*:5555\");\n\n            while (!Thread.currentThread().isInterrupted()) {\n                // Block until a message is received\n                byte[] reply = socket.recv(0);\n\n                // Print the message\n                System.out.println(\n                    \"Received: [\" + new String(reply, ZMQ.CHARSET) + \"]\"\n                );\n\n                // Send a response\n                String response = \"Hello, world!\";\n                socket.send(response.getBytes(ZMQ.CHARSET), 0);\n            }\n        }\n    }\n}\n```\n\n### More examples\n\nThe JeroMQ [translations of the zguide examples](jeromq-core/src/test/java/guide) are a good\nreference for recommended usage.\n\n### Documentation\n\nFor API-level documentation, see the\n[Javadocs](http://www.javadoc.io/doc/org.zeromq/jeromq).\n\nThis repo also has a [doc](doc/) folder, which contains assorted \"how to do X\"\nguides and other useful information about various topics related to using\nJeroMQ.\n\n## License\n\nAll source files are copyright © 2007-2024 contributors as noted in the AUTHORS file.\n\nFree use of this software is granted under the terms of the Mozilla Public License 2.0. For details see the file `LICENSE` included with the JeroMQ distribution.\n","funding_links":[],"categories":["Java","Projects","Messaging","项目","III. Network and Integration","进程间通信","Solutions"],"sub_categories":["Messaging","消息传递","3. Message, message broker and message queue"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeromq%2Fjeromq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeromq%2Fjeromq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeromq%2Fjeromq/lists"}