{"id":15346815,"url":"https://github.com/leventov/koloboke","last_synced_at":"2025-12-16T23:30:25.601Z","repository":{"id":11823862,"uuid":"14376799","full_name":"leventov/Koloboke","owner":"leventov","description":"Java Collections till the last breadcrumb of memory and performance","archived":false,"fork":false,"pushed_at":"2017-02-01T10:43:20.000Z","size":39039,"stargazers_count":1015,"open_issues_count":40,"forks_count":140,"subscribers_count":85,"default_branch":"master","last_synced_at":"2025-05-16T08:01:40.665Z","etag":null,"topics":["annotation-processor","collections","hashmap","high-performance","java","java-collections","koloboke","primitive-specializations"],"latest_commit_sha":null,"homepage":"https://koloboke.com/","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/leventov.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":"2013-11-13T21:21:40.000Z","updated_at":"2025-05-01T15:24:04.000Z","dependencies_parsed_at":"2022-08-07T06:16:38.611Z","dependency_job_id":null,"html_url":"https://github.com/leventov/Koloboke","commit_stats":null,"previous_names":["openhft/hftc","openhft/koloboke"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leventov%2FKoloboke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leventov%2FKoloboke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leventov%2FKoloboke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leventov%2FKoloboke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leventov","download_url":"https://codeload.github.com/leventov/Koloboke/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493381,"owners_count":22080126,"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":["annotation-processor","collections","hashmap","high-performance","java","java-collections","koloboke","primitive-specializations"],"created_at":"2024-10-01T11:27:08.779Z","updated_at":"2025-12-16T23:30:25.559Z","avatar_url":"https://github.com/leventov.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Koloboke\n\nA family of projects around collections in Java ([so far](\nhttps://koloboke.com/compile/koloboke-compile-for-languages-other-than-java/)).\n\n## The Koloboke Collections API\n[![koloboke-api maven central](\nhttps://maven-badges.herokuapp.com/maven-central/com.koloboke/koloboke-api-jdk8/badge.svg)](\nhttps://maven-badges.herokuapp.com/maven-central/com.koloboke/koloboke-api-jdk8)\n\nA carefully designed extension of the Java Collections Framework with primitive specializations and\nmore. Java 6+. Apache 2.0 license.\n\n**Compatibility with the Java Collections Framework**\n\n - All primitive specialization collections *extend basic interfaces* (`Collection`, `Set`, `Map`),\n hence could be used as drop-in replacements of slow collections of boxed values\n - API for Java 6 and 7 is *forward-compatible* with all methods new in Java 8\n\n**JavaDoc: [Java 6](http://leventov.github.io/Koloboke/api/1.0/java6/index.html)\n| [Java 7](http://leventov.github.io/Koloboke/api/1.0/java7/index.html)\n| [Java 8](http://leventov.github.io/Koloboke/api/1.0/java8/index.html)**\n\n## [Koloboke Compile](https://koloboke.com/compile)\n[![koloboke-compile maven central](\nhttps://maven-badges.herokuapp.com/maven-central/com.koloboke/koloboke-compile/badge.svg)](\nhttps://maven-badges.herokuapp.com/maven-central/com.koloboke/koloboke-compile)\n\nAn annotation processor, generates implementations for collection-like abstract classes or\ninterfaces. API agnostic, may be used to generate implementation for classes or interfaces,\nextending interfaces from the Koloboke Collections API, or, for example, [interfaces from the Trove\ncollections library](https://github.com/leventov/trove-over-koloboke-compile). \"Embeddable version\"\nof the Koloboke implementation library.\n\n### Quick start\nAdd the following dependencies in your Maven `pom.xml`:\n```xml\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.koloboke\u003c/groupId\u003e\n    \u003cartifactId\u003ekoloboke-compile\u003c/artifactId\u003e\n    \u003cversion\u003e0.5.1\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n  \u003c/dependency\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.koloboke\u003c/groupId\u003e\n    \u003c!-- `jdk6-7` instead of `jdk8` if you use Java 6 or 7 --\u003e\n    \u003cartifactId\u003ekoloboke-impl-common-jdk8\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n  \u003c/dependency\u003e\n```\n\nOr in your Gradle build script, you should first apply the [`propdeps` Gradle plugin](\nhttps://github.com/spring-projects/gradle-plugins/tree/master/propdeps-plugin#overview) to enable\n`provided` dependencies, and then configure the `dependencies` block:\n```groovy\ndependencies {\n    provided 'com.koloboke:koloboke-compile:0.5.1'\n    // `jdk6-7` instead of `jdk8` if you use Java 6 or 7\n    compile 'com.koloboke:koloboke-impl-common-jdk8:1.0.0'\n}\n```\n\nNext step: read the [Koloboke Compile tutorial](compile/tutorial.md).\n\n[**Javadocs**](http://leventov.github.io/Koloboke/compile/0.5/index.html)\n\n## [The Koloboke implementation library](https://koloboke.com/implementation-library)\n[![koloboke-impl maven central](\nhttps://maven-badges.herokuapp.com/maven-central/com.koloboke/koloboke-impl-jdk8/badge.svg)](\nhttps://maven-badges.herokuapp.com/maven-central/com.koloboke/koloboke-impl-jdk8)\n\nAn efficient implementation of the Koloboke Collections API.\n\n**Compatibility with the Java Collections Framework**\n - *Fail-fast* semantics everywhere\n - `null` keys are (optionally) supported, just like in `java.util.HashMap`\n - `Float.NaN` and `Double.NaN` keys are treated consistently with boxed version\n (all `NaN`s are considered equal)\n\n### Quick start\nAdd the following dependencies in your Maven `pom.xml`:\n```xml\n  \u003cdependencies\u003e\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.koloboke\u003c/groupId\u003e\n      \u003cartifactId\u003ekoloboke-api-jdk8\u003c/artifactId\u003e\n      \u003cversion\u003e1.0.0\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.koloboke\u003c/groupId\u003e\n      \u003cartifactId\u003ekoloboke-impl-jdk8\u003c/artifactId\u003e\n      \u003cversion\u003e1.0.0\u003c/version\u003e\n      \u003cscope\u003eruntime\u003c/scope\u003e\n    \u003c/dependency\u003e\n  \u003cdependencies\u003e\n```\n\nOr to your Gradle build script:\n```groovy\ndependencies {\n    // `jdk6-7` instead of `jdk8` if you use Java 7 or older\n    compile 'com.koloboke:koloboke-api-jdk8:1.0.0'\n    runtime 'com.koloboke:koloboke-impl-jdk8:1.0.0'\n}\n```\n\nOr similarly for your favourite build system.\n\nThen you can start using collections. Replace all lines like\n\n    Map\u003cInteger, Integer\u003e map = new HashMap\u003c\u003e();\n\nwith\n\n    Map\u003cInteger, Integer\u003e map = HashIntIntMaps.newMutableMap();\n\nNext step: see [the table of equivalents of JDK collection patterns]\n(http://leventov.github.io/Koloboke/api/1.0/java8/index.html#jdk-equivalents).\n\n---\n\n### [Releases (with changelog)](https://github.com/leventov/Koloboke/releases)\n\n---\n\n### Contributing, Feedback \u0026 Support\nUse [issues](https://github.com/leventov/Koloboke/issues) or ask a question on\n[StackOverflow](stackoverflow.com/questions/tagged/koloboke).\n\n---\n\n### How to build and develop\nGradle build requires Java 8 compiler, set `JAVA_HOME` environment variable to the JDK 8 location.\nNext to your JDK 8 location (i. e. a `jdk1.8` directory), *JDK 9 installation has to be present in\na `jdk-9` directory*. For meta projects development, JDK 6 and JDK 7 also have to be present in\n`jdk1.6` and `jdk1.7` directories sibling to the `jdk1.8` directory.\n\nThen\n\n    $ git clone git@github.com:leventov/Koloboke.git\n    $ cd Koloboke\n    $ ./gradlew :buildMeta\n    $ ./gradlew buildMain -x test -x findbugsMain -x findbugsTest\n    $ ./gradlew idea\n\nThen you can open the project in IntelliJ IDEA.\n\nTo rebuild meta projects (code generators), run from the project root dir:\n\n    $ ./gradlew :cleanMeta :buildMeta\n\nTo rebuild either the lib, benchmarks or both, run\n\n    $ ./gradlew cleanMain buildMain\n\nfrom the `lib`, `benchmarks` subdir or the root project dir respectively.\n\nTo build the lib for Java 8, run\n\n    $ ../gradlew cleanMain buildMain -PlibTargetJava=8\n    \nfrom the `lib` subdir.\n\nIf you want to generate proper Javadocs, especially for Java 6 or 7, you should specify\n`javadocExecutable` and `jdkSrc` build properties (see\n[Gradle docs](http://www.gradle.org/docs/2.0/userguide/tutorial_this_and_that.html#sec:gradle_properties_and_system_properties)\nfor how to do that). Typical `javadocExecutable` value is `JAVA_HOME/bin/javadoc[.exe]`, `jdkSrc`\nshould point to a directory which contain uncompressed JDK sources, i. e. package structure starting\nfrom `java`, `javax`, `sun`, etc. subdirs.\n\n---\n\n#### Project name history\n\n - ~~Trove~~ (This project was started as a [Trove fork](https://bitbucket.org/leventov/trove),\n   but has nothing in common with Trove for already very long time.)\n - ~~UntitledCollectionsProject, UCP~~\n - ~~Higher Frequency Trading Collections, OpenHFT Collections, HFT Collections, HFTC~~\n - Koloboke (Collections) -- current name!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleventov%2Fkoloboke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleventov%2Fkoloboke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleventov%2Fkoloboke/lists"}