{"id":33179626,"url":"https://github.com/jetlang/core","last_synced_at":"2026-01-17T16:26:49.466Z","repository":{"id":32549374,"uuid":"36131673","full_name":"jetlang/core","owner":"jetlang","description":null,"archived":false,"fork":false,"pushed_at":"2021-01-20T15:57:36.000Z","size":605,"stargazers_count":160,"open_issues_count":1,"forks_count":38,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-07-12T16:05:00.340Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/jetlang.png","metadata":{"files":{"readme":"README.md","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":"2015-05-23T16:25:39.000Z","updated_at":"2025-05-14T04:15:51.000Z","dependencies_parsed_at":"2022-09-12T05:01:40.677Z","dependency_job_id":null,"html_url":"https://github.com/jetlang/core","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/jetlang/core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jetlang%2Fcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jetlang%2Fcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jetlang%2Fcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jetlang%2Fcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jetlang","download_url":"https://codeload.github.com/jetlang/core/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jetlang%2Fcore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-11-16T03:00:36.839Z","updated_at":"2026-01-17T16:26:49.457Z","avatar_url":"https://github.com/jetlang.png","language":"Java","funding_links":[],"categories":["并发编程"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/jetlang/core.svg?branch=master)](https://travis-ci.org/jetlang/core)\n\nJetlang provides a high performance java threading library. The library is based upon Retlang.\n\nThe library is a complement to the java.util.concurrent package introduced in 1.5 and should be used for message based concurrency similar to event based actors in Scala.\n\nThe library does not provide remote messaging capabilities. It is designed specifically for high performance in-memory messaging.\nFeatures\n\n* All messages to a particular Fiber are delivered sequentially. Components can easily keep state without synchronizing data access or worrying about thread races.\n* Single Fiber interface that can be backed by a dedicated thread or a thread pool.\n* Supports single or multiple subscribers for messages.\n* Subscriptions for single events or event batching\n* Single or recurring event scheduling\n*   High performance design optimized for low latency and high scalability\n*    Publishing is thread safe, allowing easy integration with other threading models.\n*    Low Lock Contention - Minimizing lock contention is critical for performance. Other concurrency solutions are limited by a single lock typically on a central thread pool or message queue. Jetlang is optimized for low lock contention. Without a central bottleneck, performance easily scales to the needs of the application.\n*    Powerful Async Request/Reply Support\n*    Single jar with no dependencies except the jdk (1.6+)\n*    Integrates with any JVM language - jruby, scala, clojure, groovy, etc\n*    Distributed Messaging - Jetlang Remoting \n\nExample\n\n    Fiber fiber = new ThreadFiber();\n    fiber.start();\n    final CountDownLatch latch = new CountDownLatch(2);\n    Runnable toRun = new Runnable(){\n        public void run(){\n            latch.countDown();\n        }\n    };\n    //enqueue runnable for execution\n    fiber.execute(toRun);\n    //repeat to trigger latch a 2nd time\n    fiber.execute(toRun);\n    latch.await(10, TimeUnit.SECONDS);\n    //shutdown thread\n    fiber.dispose();\n\nChannel Example\n\n        // start thread backed receiver. \n        // Lighweight fibers can also be created using a thread pool\n        Fiber receiver = new ThreadFiber();\n        receiver.start();\n\n        // create java.util.concurrent.CountDownLatch to notify when message arrives\n        final CountDownLatch latch = new CountDownLatch(1);\n\n        // create channel to message between threads\n        Channel\u003cString\u003e channel = new MemoryChannel\u003cString\u003e();\n\n        Callback\u003cString\u003e onMsg = new Callback\u003cString\u003e() {\n            public void onMessage(String message) {\n                //open latch\n                latch.countDown();\n            }\n        };\n        //add subscription for message on receiver thread\n        channel.subscribe(receiver, onMsg);\n\n        //publish message to receive thread. the publish method is thread safe.\n        channel.publish(\"Hello\");\n\n        //wait for receiving thread to receive message\n        latch.await(10, TimeUnit.SECONDS);\n\n        //shutdown thread\n        receiver.dispose();\n\n##Using with Maven\n\nJetlang is in the central maven repository as of 0.2.9\n\nhttps://repo1.maven.org/maven2/org/jetlang/jetlang/\n\nTo use Jetlang, add the following dependency. Replace _DESIRED_VERSION_HERE_ with the version you would like to use.\n\n        \u003cproject\u003e\n            ...\n            \u003cdependencies\u003e\n                ...\n                \u003cdependency\u003e\n                    \u003cgroupId\u003eorg.jetlang\u003c/groupId\u003e\n                    \u003cartifactId\u003ejetlang\u003c/artifactId\u003e\n                    \u003cversion\u003e_DESIRED_VERSION_HERE_\u003c/version\u003e\n                \u003c/dependency\u003e\n                ...\n            \u003c/dependencies\u003e\n            ...\n        \u003c/project\u003e\n\n##Dev Mailing List\n\nhttps://groups.google.com/forum/#!forum/jetlang-dev\n\nReleasing with Maven\n\nmvn release:prepare release:perform\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetlang%2Fcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjetlang%2Fcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetlang%2Fcore/lists"}