{"id":19973231,"url":"https://github.com/zeromq/jzmq","last_synced_at":"2025-05-15T04:07:12.810Z","repository":{"id":41225909,"uuid":"540945","full_name":"zeromq/jzmq","owner":"zeromq","description":"Java binding for ZeroMQ ","archived":false,"fork":false,"pushed_at":"2022-04-23T17:21:49.000Z","size":1495,"stargazers_count":586,"open_issues_count":102,"forks_count":364,"subscribers_count":74,"default_branch":"master","last_synced_at":"2025-04-14T05:56:19.850Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.zeromq.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.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":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-03-01T09:14:49.000Z","updated_at":"2025-04-09T05:26:29.000Z","dependencies_parsed_at":"2022-07-12T18:17:51.899Z","dependency_job_id":null,"html_url":"https://github.com/zeromq/jzmq","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjzmq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjzmq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjzmq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeromq%2Fjzmq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeromq","download_url":"https://codeload.github.com/zeromq/jzmq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254270646,"owners_count":22042859,"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-11-13T03:10:43.548Z","updated_at":"2025-05-15T04:07:07.794Z","avatar_url":"https://github.com/zeromq.png","language":"Java","readme":"What is JZMQ?\n-------------\n\nThis is the Java language binding for libzmq (aka ZeroMQ, 0MQ).\n\n[![Build Status](https://travis-ci.org/zeromq/jzmq.png?branch=master)](https://travis-ci.org/zeromq/jzmq)\n\nThe latest [javadocs](http://zeromq.github.com/jzmq/javadocs/).\n\nBuilding and Installing JZMQ\n----------------------------\n\nTo build you need to have the libzmq library already installed, then you run:\n\n```bash\ncd jzmq-jni/\n./autogen.sh\n./configure\nmake\nmake install\ncd ..\nmvn package\n```\n\nIf you hope to install to your local maven, then you should run:\n\n```\nmvn install -Dgpg.skip=true\n```\n\nBuilding Windows 64bit with CMake \u0026 NMake\n-----------------------------------------\n\nIt is recommended to follow these steps with the *Visual C++ 2015 Build Tools*.\n\n1. create a new and empty directory:\n```\nd:\\temp\\\u003emkdir JZMQ\nd:\\temp\\\u003ecd JZMQ\nd:\\temp\\JZMQ\\\u003e\n```\n2. Clone the repository to your new directory\n```\nd:\\temp\\JZMQ\\\u003egit clone https://github.com/zeromq/jzmq.git\n```\n3. dive into the checkedout repository and create a new build64 folder\n```\nd:\\temp\\JZMQ\\\u003ecd jzmq\\jzmq-jni\nd:\\temp\\JZMQ\\jzmq\\jzmq-jni\\\u003emkdir build64\nd:\\temp\\JZMQ\\jzmq\\jzmq-jni\\\u003ecd build64\n```\n4. Now call CMake to generate the project\n```\nD:\\temp\\JZMQ\\jzmq\\jzmq-jni\\build64\u003ecmake .. -G \"NMake Makefiles\" -DZMQ_C_INCLUDE_PATH=\u003cpath to zmq include\u003e -DZMQ_C_LIB_PATH=\u003cpath to zmq library\u003e\n-- The C compiler identification is MSVC 19.0.24210.0\n-- The CXX compiler identification is MSVC 19.0.24210.0\n-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe\n-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe -- works\n-- Detecting C compiler ABI info\n-- Detecting C compiler ABI info - done\n-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe\n-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe -- works\n-- Detecting CXX compiler ABI info\n-- Detecting CXX compiler ABI info - done\n-- Detecting CXX compile features\n-- Detecting CXX compile features - done\n-- Found Java: C:/Program Files/Java/jdk1.8.0_91/bin/java.exe (found version \"1.8.0.91\")\n-- Found JNI: C:/Program Files/Java/jdk1.8.0_91/lib/jawt.lib\n-- Configuring done\n-- Generating done\n-- Build files have been written to: D:/temp/JZMQ/jzmq/jzmq-jni/build64\n```\n5. Now finally call NMake to build the zmq.jar and jzmq.lib, jzmq.dll\n```\nD:\\temp\\JZMQ\\jzmq\\jzmq-jni\\build64\u003enmake\nMicrosoft (R) Program Maintenance Utility Version 14.00.24210.0\nCopyright (C) Microsoft Corporation.  All rights reserved.\n\n[ 10%] Generating config.hpp\n[ 20%] Generating org/zeromq/ZMQ.class, org/zeromq/Utils.class, org/zeromq/ZMQ$$Context.class, org/zeromq/ZMQ$$Socket.class, org/zeromq/ZMQ$$PollItem.class, org/zeromq/ZMQ$$Poller.class, org/zeromq/ZM\nQ$$Error.class, org/zeromq/ZMQException.class, org/zeromq/ZMQQueue.class, org/zeromq/ZMQForwarder.class, org/zeromq/ZMQStreamer.class, org/zeromq/EmbeddedLibraryTools.class, org/zeromq/App.class, org/\nzeromq/ZContext.class, org/zeromq/ZDispatcher.class, org/zeromq/ZDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$2.class, org/zeromq/Z\nDispatcher$$SocketDispatcher$$ZMessageBuffer.class, org/zeromq/ZDispatcher$$SocketDispatcher.class, org/zeromq/ZDispatcher$$ZMessageHandler.class, org/zeromq/ZDispatcher$$ZSender.class, org/zeromq/ZFr\name.class, org/zeromq/ZMsg.class, org/zeromq/ZLoop.class, org/zeromq/ZLoop$$IZLoopHandler.class, org/zeromq/ZLoop$$SPoller.class, org/zeromq/ZLoop$$STimer.class, org/zeromq/ZThread.class, org/zeromq/Z\nThread$$IAttachedRunnable.class, org/zeromq/ZThread$$IDetachedRunnable.class, org/zeromq/ZThread$$ShimThread.class\nNote: Some input files use or override a deprecated API.\nNote: Recompile with -Xlint:deprecation for details.\n[ 30%] Generating org_zeromq_ZMQ.h, org_zeromq_ZMQ_Error.h, org_zeromq_ZMQ_Context.h, org_zeromq_ZMQ_Socket.h, org_zeromq_ZMQ_PollItem.h, org_zeromq_ZMQ_Poller.h\n[ 40%] Generating lib/zmq.jar\nScanning dependencies of target jzmq\n[ 40%] Generating org/zeromq/ZMQ.class, org/zeromq/Utils.class, org/zeromq/ZMQ$$Context.class, org/zeromq/ZMQ$$Socket.class, org/zeromq/ZMQ$$PollItem.class, org/zeromq/ZMQ$$Poller.class, org/zeromq/ZM\nQ$$Error.class, org/zeromq/ZMQException.class, org/zeromq/ZMQQueue.class, org/zeromq/ZMQForwarder.class, org/zeromq/ZMQStreamer.class, org/zeromq/EmbeddedLibraryTools.class, org/zeromq/App.class, org/\nzeromq/ZContext.class, org/zeromq/ZDispatcher.class, org/zeromq/ZDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$1.class, org/zeromq/ZDispatcher$$SocketDispatcher$$2.class, org/zeromq/Z\nDispatcher$$SocketDispatcher$$ZMessageBuffer.class, org/zeromq/ZDispatcher$$SocketDispatcher.class, org/zeromq/ZDispatcher$$ZMessageHandler.class, org/zeromq/ZDispatcher$$ZSender.class, org/zeromq/ZFr\name.class, org/zeromq/ZMsg.class, org/zeromq/ZLoop.class, org/zeromq/ZLoop$$IZLoopHandler.class, org/zeromq/ZLoop$$SPoller.class, org/zeromq/ZLoop$$STimer.class, org/zeromq/ZThread.class, org/zeromq/Z\nThread$$IAttachedRunnable.class, org/zeromq/ZThread$$IDetachedRunnable.class, org/zeromq/ZThread$$ShimThread.class\nNote: Some input files use or override a deprecated API.\nNote: Recompile with -Xlint:deprecation for details.\n[ 40%] Generating org_zeromq_ZMQ.h, org_zeromq_ZMQ_Error.h, org_zeromq_ZMQ_Context.h, org_zeromq_ZMQ_Socket.h, org_zeromq_ZMQ_PollItem.h, org_zeromq_ZMQ_Poller.h\n[ 50%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/Context.cpp.obj\nContext.cpp\n[ 60%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/Poller.cpp.obj\nPoller.cpp\nD:\\temp\\JZMQ\\jzmq\\jzmq-jni\\src\\main\\c++\\Poller.cpp(76): warning C4244: '=': conversion from 'jint' to 'short', possible loss of data\n[ 70%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/Socket.cpp.obj\nSocket.cpp\nD:\\temp\\JZMQ\\jzmq\\jzmq-jni\\src\\main\\c++\\Socket.cpp(266): warning C4267: 'argument': conversion from 'size_t' to 'jsize', possible loss of data\nD:\\temp\\JZMQ\\jzmq\\jzmq-jni\\src\\main\\c++\\Socket.cpp(272): warning C4267: 'argument': conversion from 'size_t' to 'jsize', possible loss of data\nD:\\temp\\JZMQ\\jzmq\\jzmq-jni\\src\\main\\c++\\Socket.cpp(847): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data\nD:\\temp\\JZMQ\\jzmq\\jzmq-jni\\src\\main\\c++\\Socket.cpp(875): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data\n[ 80%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/util.cpp.obj\nutil.cpp\n[ 90%] Building CXX object CMakeFiles/jzmq.dir/src/main/c++/ZMQ.cpp.obj\nZMQ.cpp\n[100%] Linking CXX shared library lib\\jzmq.dll\n   Creating library lib\\jzmq.lib and object lib\\jzmq.exp\n   Creating library lib\\jzmq.lib and object lib\\jzmq.exp\n[100%] Built target jzmq\n```\n\nAvoiding JNI\n------------\n\nJZMQ uses JNI to wrap libzmq for the best performance. If performance isn't your primary goal, look at the [JeroMQ](https://github.com/zeromq/jeromq) project, which is a pure Java implementation that provides an identical API to JZMQ, and uses the same protocol.\n\nBuilding Packages\n-----------------\n\nTo build a Debian package, run:\n\n```bash\n$ dpkg-buildpackage -rfakeroot\n```\n\nTo build an RPM package, run:\n\n```bash\n$ rpmbuild -tb jzmq-X.Y.Z.tar.gz\n```\n\nWhere X.Y.Z is replaced with the version that you've downloaded.\n\nIf configure can't find your libzmq installation, you can tell it where to look, using e.g. `--with-zeromq=/usr/local`.\n\nYou may want to take a look at http://www.zeromq.org/docs:tuning-zeromq for additional hints.\n\nFor more information, refer to the ØMQ website at http://www.zeromq.org/.\n\nOn Mac OS X you may need to compile and make install pkg-config if configure fails with \"syntax error near unexpected token newline\".   \nSee http://stackoverflow.com/questions/3522248/how-do-i-compile-jzmq-for-zeromq-on-osx for details.   \n\nYou may also need to symlink the header files of your standard Java installation (e.g. `/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers/*.h`) into a suitable directory (e.g. `/usr/local/include`) and point the `JAVA_HOME` environment variable to the parent directory (e.g.`/usr/local`).\n\n## Acknowledgements\n\nYourKit is kindly supporting ZeroMQ project with its full-featured [Java Profiler](http://www.yourkit.com/java/profiler/index.jsp).\n\nCopying\n-------\n\nFree use of this software is granted under the terms of the GNU Lesser General\nPublic License (LGPL). For details see the files `COPYING` and `COPYING.LESSER`\nincluded with the Java binding for ØMQ.\n","funding_links":[],"categories":["III. Network and Integration"],"sub_categories":["3. Message, message broker and message queue"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeromq%2Fjzmq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeromq%2Fjzmq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeromq%2Fjzmq/lists"}