{"id":18888941,"url":"https://github.com/naver/arcus-java-client","last_synced_at":"2025-04-04T19:11:41.528Z","repository":{"id":16518701,"uuid":"19271811","full_name":"naver/arcus-java-client","owner":"naver","description":"ARCUS Java client","archived":false,"fork":false,"pushed_at":"2025-03-19T08:06:30.000Z","size":4615,"stargazers_count":49,"open_issues_count":23,"forks_count":48,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-03-28T18:13:57.224Z","etag":null,"topics":["arcus","arcus-java-client","spymemcached"],"latest_commit_sha":null,"homepage":"","language":"Java","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/naver.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-04-29T09:55:01.000Z","updated_at":"2024-12-06T19:59:47.000Z","dependencies_parsed_at":"2023-02-19T06:16:01.512Z","dependency_job_id":"808fd984-029c-40a5-92b3-fb0cd4aa7a77","html_url":"https://github.com/naver/arcus-java-client","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Farcus-java-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Farcus-java-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Farcus-java-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naver%2Farcus-java-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/naver","download_url":"https://codeload.github.com/naver/arcus-java-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234922,"owners_count":20905854,"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":["arcus","arcus-java-client","spymemcached"],"created_at":"2024-11-08T07:46:42.528Z","updated_at":"2025-04-04T19:11:41.496Z","avatar_url":"https://github.com/naver.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## arcus-java-client: Arcus Java Client [![CI][ciBadge]][ciLink] [![License][liBadge]][liLink]\n\nThis is a fork of [spymemcached][spymemcached] with the following modifications\nto support Arcus memcached cloud.\n\n- Collection data types\n    - List: A doubly-linked list.\n    - Set: An unordered set of unique data.\n    - Map: An unordered set of \u003cfield, value\u003e.\n    - B+Tree: A B+Tree structure similar to sorted map.\n- ZooKeeper based clustering\n\n[spymemcached]: https://code.google.com/p/spymemcached/ \"spymemcached\"\n\n## JDK Requirements\n\nCompatible with jdk version\n- runtime requirements : At least 1.6\n- build requirements : At least 1.8\n\n## Getting Started\n\nThe Maven artifact for arcus java client is in the central Maven repository.\nTo use it, add the following dependency to your pom.xml.\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.navercorp.arcus\u003c/groupId\u003e\n        \u003cartifactId\u003earcus-java-client\u003c/artifactId\u003e\n        \u003cversion\u003e1.14.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n- [Getting Started Guide (in Korean)][getting-started-guide]\n\n[getting-started-guide]: docs/arcus-java-client-getting-started.md \"guide\"\n\n## Building\n\nTo build your own library, simply run the following maven command:\n\n```\n$ mvn clean install\n\n# Test cases may not run properly if you do not already have memcached\n# and ZooKeeper installed on the local machine.  To skip tests, use skipTests.\n\n$ mvn clean install -DskipTests=true\n```\n\n## Running Test Cases\n\nBefore running test cases, make sure to set up a local ZooKeeper and run\nan Arcus memcached instance.  Several Arcus specific test cases assume that\nthere is an Arcus instance running, along with ZooKeeper.\n\nFirst, make a simple ZooKeeper configuration file.  By default, tests assume\nZooKeeper is running at localhost:2181.\n```\n$ cat test-zk.conf\n# The number of milliseconds of each tick\ntickTime=2000\n# The number of ticks that the initial \n# synchronization phase can take\ninitLimit=10\n# The number of ticks that can pass between \n# sending a request and getting an acknowledgement\nsyncLimit=5\n# the directory where the snapshot is stored.\ndataDir=/home1/openarcus/zookeeper_data\n# the port at which the clients will connect\nclientPort=2181\nmaxClientCnxns=200\n```\n\nSecond, create znodes for one memcached instance running at localhost:11211.\nZooKeeper comes with a command line tool.  The following script uses it to\nset up the directory structure.\n```\n$ cat setup-test-zk.bash\n\nZK_CLI=\"./zookeeper/bin/zkCli.sh\"\nZK_ADDR=\"-server localhost:2181\"\n\n$ZK_CLI $ZK_ADDR create /arcus 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_list 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_list/test 0\n$ZK_CLI $ZK_ADDR create /arcus/client_list 0\n$ZK_CLI $ZK_ADDR create /arcus/client_list/test 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_server_log 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11211 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11211/test 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11212 0\n$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11212/test 0\n```\n\nNow start the ZooKeeper instance using the configuration above.\n```\n$ ZOOCFGDIR=$PWD ./zookeeper/bin/zkServer.sh start test-zk.conf\n```\n\nAnd, start the memcached instance.\n```\n$ /home1/openarcus/bin/memcached -E /home1/openarcus/lib/default_engine.so -p 11211 -z localhost:2181\n```\n\nFinally, run test cases.\n```\n$ mvn test\n[...]\nResults :\n\nTests run: 722, Failures: 0, Errors: 0, Skipped: 8\n\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 3:17.308s\n[INFO] Finished at: Thu Mar 06 13:42:58 KST 2014\n[INFO] Final Memory: 9M/722M\n[INFO] ------------------------------------------------------------------------\n```\n\n## API Documentation\n\nPlease refer to [Arcus Java Client User Guide](docs/user_guide/README.md)\nfor the detailed usage of Arcus java client.\n\n## Issues\n\nIf you find a bug, please report it via the GitHub issues page.\n\nhttps://github.com/naver/arcus-java-client/issues\n\n## Arcus Contributors\n\nIn addition to those who had contributed to the original libmemcached, the\nfollowing people at NAVER have contributed to arcus-java-client.\n\nChisu Yu (netspider) \u003cchisu.yu@navercorp.com\u003e; \u003cpuseori9th@gmail.com\u003e  \nHoonmin Kim (harebox) \u003choonmin.kim@navercorp.com\u003e; \u003charebox@gmail.com\u003e  \nYeaSol Kim (ngleader) \u003csol.k@navercorp.com\u003e; \u003cngleader@gmail.com\u003e  \nSeongHwa Ahn \u003cgetconnected@sk.com\u003e; \u003cash@nhn.com\u003e  \nHyongYoub Kim \u003chyongyoub.kim@navercorp.com\u003e  \n\n## License\n\nLicensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0\n\n## Patents\n\nArcus has patents on b+tree smget operation.\nRefer to PATENTS file in this directory to get the patent information.\n\nUnder the Apache License 2.0, a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable patent license is granted to any user for any usage.\nYou can see the specifics on the grant of patent license in LICENSE file in this directory.\n\n[ciBadge]: https://github.com/naver/arcus-java-client/actions/workflows/ci.yml/badge.svg\n[ciLink]: https://github.com/naver/arcus-java-client/actions/workflows/ci.yml\n[liBadge]: https://img.shields.io/badge/License-Apache_2.0-blue.svg\n[liLink]: https://github.com/naver/arcus-java-client/blob/master/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaver%2Farcus-java-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaver%2Farcus-java-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaver%2Farcus-java-client/lists"}