{
  "id": "sourcerer-libraries-java",
  "name": "Popular Java Libraries",
  "title": "Popular Java Libraries",
  "description": "Curated list of popular Java libraries used by GitHub projects, with Maven import paths, GitHub repo, tags, and technology domain.",
  "category": "tech",
  "source": "https://github.com/sourcerer-io/awesome-libraries",
  "source_url": "https://github.com/sourcerer-io/awesome-libraries",
  "updated": "2026-04",
  "record_count": 337,
  "columns": [
    {
      "key": "id",
      "label": "Id",
      "type": "string"
    },
    {
      "key": "imports",
      "label": "Imports",
      "type": "string"
    },
    {
      "key": "name",
      "label": "Name",
      "type": "string"
    },
    {
      "key": "repo",
      "label": "Repo",
      "type": "string"
    },
    {
      "key": "tags",
      "label": "Tags",
      "type": "string"
    },
    {
      "key": "tech",
      "label": "Tech",
      "type": "string"
    },
    {
      "key": "status",
      "label": "Status",
      "type": "string"
    }
  ],
  "rows": [
    {
      "id": "java.android-util-code",
      "imports": "com.blankj.utilcode.",
      "name": "AndroidUtilCode",
      "repo": "Blankj/AndroidUtilCode",
      "tags": "utils",
      "tech": "android",
      "status": "model-ready"
    },
    {
      "id": "java.easypermissions",
      "imports": "pub.devrel.easypermissions.",
      "name": "EasyPermissions",
      "repo": "googlesamples/easypermissions",
      "tags": "permissions",
      "tech": "android",
      "status": "model-ready"
    },
    {
      "id": "java.rxlifecycle",
      "imports": "com.trello.rxlifecycle2",
      "name": "RxLifecycle",
      "repo": "trello/RxLifecycle",
      "tags": "lifecycle",
      "tech": "android",
      "status": "awaiting-model"
    },
    {
      "id": "java.tinker",
      "imports": "com.tencent.tinker.",
      "name": "Tinker",
      "repo": "Tencent/tinker",
      "tags": "hotfix",
      "tech": "android",
      "status": "model-ready"
    },
    {
      "id": "java.android-swipe-layout",
      "imports": "com.daimajia.swipelayout",
      "name": "Android Swipe Layout",
      "repo": "daimajia/AndroidSwipeLayout",
      "tags": "swipe-layout",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.android-view-page-indicator",
      "imports": "com.viewpagerindicator.",
      "name": "Android ViewPageIndicator",
      "repo": "JakeWharton/ViewPagerIndicator",
      "tags": "paging",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.brvah",
      "imports": "com.chad.library.",
      "name": "BRVAH",
      "repo": "CymChad/BaseRecyclerViewAdapterHelper",
      "tags": "recycler-view",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.butter-knife",
      "imports": "butterknife.",
      "name": "Butter Knife",
      "repo": "JakeWharton/butterknife",
      "tags": "view-binding",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.calligraphy",
      "imports": "uk.co.chrisjenx.calligraphy., io.github.inflationx.calligraphy3.",
      "name": "Calligraphy",
      "repo": "InflationX/Calligraphy",
      "tags": "custom-fonts",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.circleimageview",
      "imports": "de.hdodenhof.circleimageview",
      "name": "CircleImageView",
      "repo": "hdodenhof/CircleImageView",
      "tags": "avatar-widget",
      "tech": "android-ui",
      "status": "awaiting-model"
    },
    {
      "id": "java.epoxy",
      "imports": "com.airbnb.epoxy",
      "name": "Epxoy",
      "repo": "airbnb/epoxy",
      "tags": "complex-screens",
      "tech": "android-ui",
      "status": "awaiting-model"
    },
    {
      "id": "java.jp.recyclerview",
      "imports": "jp.wasabeef",
      "name": "RecyclerView Animators",
      "repo": "wasabeef/recyclerview-animators",
      "tags": "android-animation",
      "tech": "android-ui",
      "status": "awaiting-model"
    },
    {
      "id": "java.material-design",
      "imports": "com.gc.materialdesign.",
      "name": "Material Design",
      "repo": "navasmdc/MaterialDesignLibrary",
      "tags": "framework",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.material-dialogs",
      "imports": "com.afollestad.material-dialogs.",
      "name": "Material Dialogs",
      "repo": "afollestad/material-dialogs",
      "tags": "dialogs",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.materialdrawer",
      "imports": "com.mikepenz.materialdrawer.",
      "name": "MaterialDrawer",
      "repo": "mikepenz/MaterialDrawer",
      "tags": "menus",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.photo-view",
      "imports": "com.github.chrisbanes.photoview.",
      "name": "PhotoView",
      "repo": "chrisbanes/PhotoView",
      "tags": "image-view",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.pull-to-refresh",
      "imports": "com.handmark.pulltorefresh.",
      "name": "Pull To Refresh",
      "repo": "chrisbanes/Android-PullToRefresh",
      "tags": "pull-to-refresh",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.rx-binding",
      "imports": "com.jakewharton.rxbinding2.",
      "name": "RxBinding",
      "repo": "JakeWharton/RxBinding",
      "tags": "reactive",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.sliding-menu",
      "imports": "com.jeremyfeinstein.slidingmenu.",
      "name": "SlidingMenu",
      "repo": "jfeinstein10/SlidingMenu",
      "tags": "menus",
      "tech": "android-ui",
      "status": "model-ready"
    },
    {
      "id": "java.facebook-android-sdk",
      "imports": "com.facebook",
      "name": "Facebook Android SDK",
      "repo": "facebook/facebook-android-sdk",
      "tags": "facebook",
      "tech": "api",
      "status": "awaiting-model"
    },
    {
      "id": "java.agera",
      "imports": "com.google.android.agera.",
      "name": "Agera",
      "repo": "google/agera",
      "tags": "android-reactive",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.android-annotations",
      "imports": "org.androidannotations.",
      "name": "AndroidAnnotations",
      "repo": "androidannotations/androidannotations",
      "tags": "framework",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.codejargon-feather",
      "imports": "org.codejargon.feather.",
      "name": "Codejargon Feather",
      "repo": "zsoltherpai/feather",
      "tags": "injection",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.cyclops",
      "imports": "com.aol.cyclops.",
      "name": "cyclops",
      "repo": "aol/cyclops-react",
      "tags": "functional",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.dagger",
      "imports": "dagger",
      "name": "Dagger",
      "repo": "square/dagger",
      "tags": "injection",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.derive4-j",
      "imports": "org.derive4j.",
      "name": "Derive4J",
      "repo": "derive4j/derive4j",
      "tags": "algebraic-types",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.event-bus",
      "imports": "org.greenrobot.eventbus.",
      "name": "EventBus",
      "repo": "greenrobot/EventBus",
      "tags": "events",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.faux-pas",
      "imports": "org.zalando.fauxpas.",
      "name": "Faux Pas",
      "repo": "zalando/faux-pas",
      "tags": "functional-errors",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.governator",
      "imports": "com.netflix.governator.",
      "name": "Governator",
      "repo": "Netflix/governator",
      "tags": "injection",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.guice",
      "imports": "com.google.inject.",
      "name": "Guice",
      "repo": "google/guice",
      "tags": "injection",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.io.vertx",
      "imports": "io.vertx",
      "name": "io.vertx",
      "repo": "eclipse-vertx/vert.x",
      "tags": "reactive",
      "tech": "app-arch",
      "status": "awaiting-model"
    },
    {
      "id": "java.j-ool",
      "imports": "org.jooq.lambda.",
      "name": "jOOL",
      "repo": "jOOQ/jOOL",
      "tags": "lambdas",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.jinq",
      "imports": "org.jinq.",
      "name": "Jinq",
      "repo": "my2iu/Jinq",
      "tags": "db-queries",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.net.bytebuddy",
      "imports": "net.bytebuddy",
      "name": "Byte Buddy",
      "repo": "raphw/byte-buddy",
      "tags": "runtime-code-gen",
      "tech": "app-arch",
      "status": "awaiting-model"
    },
    {
      "id": "java.otto",
      "imports": "com.squareup.otto.",
      "name": "Otto",
      "repo": "square/otto",
      "tags": "android-eventbus",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.reactive-streams",
      "imports": "org.reactivestreams.",
      "name": "Reactive Streams",
      "repo": "reactive-streams/reactive-streams-jvm",
      "tags": "stream-processing",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.reactive-x",
      "imports": "io.reactivex.",
      "name": "ReactiveX",
      "repo": "ReactiveX/RxJava",
      "tags": "async-observable",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.toothpick",
      "imports": "toothpick.",
      "name": "Toothpick",
      "repo": "stephanenicolas/toothpick",
      "tags": "injection",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.vert-x",
      "imports": "io.vertx.",
      "name": "Vert.x",
      "repo": "eclipse/vert.x",
      "tags": "reactive",
      "tech": "app-arch",
      "status": "model-ready"
    },
    {
      "id": "java.android-iconics",
      "imports": "com.mikepenz.iconics",
      "name": "Android-Iconics",
      "repo": "mikepenz/Android-Iconics",
      "tags": "icons",
      "tech": "app-blocks",
      "status": "awaiting-model"
    },
    {
      "id": "java.elasticsearch",
      "imports": "org.elasticsearch",
      "name": "Elasticsearch",
      "repo": "elastic/elasticsearch",
      "tags": "search-engine",
      "tech": "app-blocks",
      "status": "awaiting-model"
    },
    {
      "id": "java.flying-saucer",
      "imports": "org.xhtmlrenderer.",
      "name": "Flying Saucer",
      "repo": "flyingsaucerproject/flyingsaucer",
      "tags": "html-renderer",
      "tech": "app-blocks",
      "status": "model-ready"
    },
    {
      "id": "java.quartz-scheduler",
      "imports": "org.quartz.",
      "name": "Quartz Scheduler",
      "repo": "quartz-scheduler/quartz",
      "tags": "scheduler",
      "tech": "app-blocks",
      "status": "model-ready"
    },
    {
      "id": "java.xerial-sqlite-jdbc",
      "imports": "org.xerial",
      "name": "SQLite JDBC Driver",
      "repo": "https://bitbucket.org/xerial/sqlite-jdbc",
      "tags": "sqlite-jdbc",
      "tech": "app-blocks",
      "status": "awaiting-model"
    },
    {
      "id": "java.bean-validation",
      "imports": "javax.validation",
      "name": "Bean Validation",
      "repo": "beanvalidation/beanvalidation-api",
      "tags": "validation",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.commons-csv",
      "imports": "org.apache.commons.csv.",
      "name": "Commons CSV",
      "repo": "apache/commons-csv",
      "tags": "csv",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.cqengine",
      "imports": "com.googlecode.cqengine.",
      "name": "CQEngine",
      "repo": "npgall/cqengine",
      "tags": "collection-queries",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.dozer",
      "imports": "org.dozer.",
      "name": "Dozer",
      "repo": "DozerMapper/dozer",
      "tags": "mapping",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.fasterxml-jackson-datatype",
      "imports": "com.fasterxml.jackson.datatype.jdk8",
      "name": "Jackson Java 8 datatypes",
      "repo": "FasterXML/jackson-modules-java8",
      "tags": "jackson-java8",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.fasterxml-jackson-datatype-collections",
      "imports": "com.fasterxml.jackson.datatype.guava, com.fasterxml.jackson.datatype.hppc, com.fasterxml.jackson.datatype.pcollections, com.fasterxml.jackson.datatype.eclipsecollections",
      "name": "Jackson collections",
      "repo": "FasterXML/jackson-datatypes-collections",
      "tags": "mapping",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.fasterxml-jackson-datatype-joda",
      "imports": "com.fasterxml.jackson.datatype.joda",
      "name": "Jackson Joda",
      "repo": "FasterXML/jackson-datatype-joda",
      "tags": "joda-mapping",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.fastjson",
      "imports": "com.alibaba.fastjson.",
      "name": "fastjson",
      "repo": "alibaba/fastjson",
      "tags": "json",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.gson",
      "imports": "com.google.gson.",
      "name": "Gson",
      "repo": "google/gson",
      "tags": "json",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.hikari-json",
      "imports": "com.zaxxer.hikari.json.",
      "name": "HikariJSON",
      "repo": "brettwooldridge/HikariJSON",
      "tags": "json-parser",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.jackson",
      "imports": "org.zalando.jackson.datatype.money.",
      "name": "Jackson",
      "repo": "zalando/jackson-datatype-money",
      "tags": "money",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.jackson-annotations",
      "imports": "com.fasterxml.jackson.annotation",
      "name": "jackson-annotations",
      "repo": "FasterXML/jackson-annotations",
      "tags": "json",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.jackson-core",
      "imports": "com.fasterxml.jackson.core",
      "name": "Jackson",
      "repo": "FasterXML/jackson-core",
      "tags": "json",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.jackson-databind",
      "imports": "com.fasterxml.jackson.databind",
      "name": "Jackson Databinding",
      "repo": "FasterXML/jackson-databind",
      "tags": "json",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.jackson-dataformat",
      "imports": "com.fasterxml.jackson.dataformat",
      "name": "jackson-dataformat",
      "repo": "FasterXML/jackson-dataformats-text",
      "tags": "mapping",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.jackson-datatype",
      "imports": "com.fasterxml.jackson.datatype",
      "name": "jackson-datatype",
      "repo": "FasterXML/jackson-datatype-jsr310",
      "tags": "json",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.jayway-json-path",
      "imports": "com.jayway.jsonpath.",
      "name": "Jayway JsonPath",
      "repo": "jayway/JsonPath",
      "tags": "json-xpath",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.jmapper",
      "imports": "com.googlecode.jmapper.",
      "name": "JMapper",
      "repo": "jmapper-framework/jmapper-core",
      "tags": "mapping",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.joda",
      "imports": "org.joda",
      "name": "Joda-Convert",
      "repo": "JodaOrg/joda-convert",
      "tags": "serialization",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.json",
      "imports": "com.bazaarvoice.jolt.",
      "name": "Json",
      "repo": "bazaarvoice/jolt",
      "tags": "json-transformation",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.json-io",
      "imports": "com.cedarsoftware.util.io.",
      "name": "json-io",
      "repo": "jdereg/json-io",
      "tags": "json",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.json-surfer",
      "imports": "org.jsfr.json.",
      "name": "JsonSurfer",
      "repo": "jsurfer/JsonSurfer",
      "tags": "json",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.jsonld-java",
      "imports": "com.github.jsonldjava.",
      "name": "JSONLD-Java",
      "repo": "jsonld-java/jsonld-java",
      "tags": "formats",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.logan-square",
      "imports": "com.bluelinelabs.logansquare.",
      "name": "LoganSquare",
      "repo": "bluelinelabs/LoganSquare",
      "tags": "json-parser",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.map-struct",
      "imports": "org.mapstruct.",
      "name": "MapStruct",
      "repo": "mapstruct/mapstruct",
      "tags": "mapping",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.model-mapper",
      "imports": "org.modelmapper.",
      "name": "ModelMapper",
      "repo": "modelmapper/modelmapper",
      "tags": "mapping",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.moshi",
      "imports": "com.squareup.moshi.",
      "name": "Moshi",
      "repo": "square/moshi",
      "tags": "json",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.orika",
      "imports": "ma.glasnost.orika.",
      "name": "Orika",
      "repo": "orika-mapper/orika",
      "tags": "mapping",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.protonpack",
      "imports": "com.codepoetics.protonpack.",
      "name": "protonpack",
      "repo": "poetix/protonpack",
      "tags": "streams",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.selma",
      "imports": "fr.xebia.extras.selma.",
      "name": "Selma",
      "repo": "xebia-france/selma",
      "tags": "mapping",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.simple-flat-mapper",
      "imports": "org.simpleflatmapper.",
      "name": "Simple Flat Mapper",
      "repo": "arnaudroger/SimpleFlatMapper",
      "tags": "transformations",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.siren4j",
      "imports": "com.google.code.siren4j.",
      "name": "Siren4j",
      "repo": "eserating/siren4j",
      "tags": "formats",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.stream-ex",
      "imports": "one.util.streamex.",
      "name": "StreamEx",
      "repo": "amaembo/streamex",
      "tags": "streams",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.uni-vocity-parsers",
      "imports": "com.univocity.parsers.",
      "name": "uniVocity-parsers",
      "repo": "uniVocity/univocity-parsers",
      "tags": "csv",
      "tech": "app-data",
      "status": "model-ready"
    },
    {
      "id": "java.xerces",
      "imports": "org.xml",
      "name": "Xerces2 Java parser",
      "repo": "https://svn.apache.org/repos/asf/xerces/java/",
      "tags": "xml-parser",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.xstream",
      "imports": "com.thoughtworks.xstream",
      "name": "XStream",
      "repo": "x-stream/xstream",
      "tags": "xml-serialization",
      "tech": "app-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.presto",
      "imports": "com.facebook.presto.",
      "name": "Presto",
      "repo": "prestodb/presto",
      "tags": "distributed-sql",
      "tech": "big-data",
      "status": "model-ready"
    },
    {
      "id": "java.jbot",
      "imports": "me.ramswaroop.jbot.",
      "name": "JBot",
      "repo": "ramswaroop/jbot",
      "tags": "chatbots",
      "tech": "chat-ux",
      "status": "model-ready"
    },
    {
      "id": "java.smack",
      "imports": "org.jivesoftware.smack.",
      "name": "Smack",
      "repo": "igniterealtime/Smack",
      "tags": "android-xmpp",
      "tech": "chat-ux",
      "status": "model-ready"
    },
    {
      "id": "java.aliyun",
      "imports": "com.aliyuncs",
      "name": "Alibaba Cloud",
      "repo": "aliyun/aliyun-openapi-java-sdk",
      "tags": "alibaba-client",
      "tech": "cloud",
      "status": "awaiting-model"
    },
    {
      "id": "java.amazonaws",
      "imports": "com.amazonaws",
      "name": "AWS SDK",
      "repo": "aws/aws-sdk-java",
      "tags": "aws",
      "tech": "cloud",
      "status": "awaiting-model"
    },
    {
      "id": "java.atmosphere",
      "imports": "org.atmosphere",
      "name": "Atmosphere",
      "repo": "Atmosphere/atmosphere",
      "tags": "web-framework",
      "tech": "cloud",
      "status": "awaiting-model"
    },
    {
      "id": "java.com-networknt",
      "imports": "com.networknt.",
      "name": "com.networknt",
      "repo": "networknt/light-java",
      "tags": "platform",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.consul",
      "imports": "com.ecwid.consul.v1.",
      "name": "Consul",
      "repo": "Ecwid/consul-api",
      "tags": "service-discovery",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.de.codecentric",
      "imports": "de.codecentric",
      "name": "Spring Boot Admin",
      "repo": "codecentric/spring-boot-admin",
      "tags": "spring-boot-admin",
      "tech": "cloud",
      "status": "awaiting-model"
    },
    {
      "id": "java.docker-java",
      "imports": "com.github.dockerjava",
      "name": "docker-java",
      "repo": "docker-java/docker-java",
      "tags": "docker",
      "tech": "cloud",
      "status": "awaiting-model"
    },
    {
      "id": "java.dubbo",
      "imports": "com.alibaba.dubbo.",
      "name": "Dubbo",
      "repo": "alibaba/dubbo",
      "tags": "rpc",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.eureka",
      "imports": "com.netflix.eureka.",
      "name": "Eureka",
      "repo": "Netflix/eureka",
      "tags": "load-balancing",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.finagle",
      "imports": "com.twitter.finagle.",
      "name": "Finagle",
      "repo": "twitter/finagle",
      "tags": "rpc",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.g-rpc-java",
      "imports": "io.grpc.",
      "name": "gRPC-Java",
      "repo": "grpc/grpc-java",
      "tags": "rpc",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.kafka",
      "imports": "org.apache.kafka.",
      "name": "Kafka",
      "repo": "apache/kafka",
      "tags": "message-queue",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.nakadi",
      "imports": "org.zalando.nakadi.",
      "name": "Nakadi",
      "repo": "zalando/nakadi",
      "tags": "event-broker",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.nifty",
      "imports": "com.facebook.nifty.",
      "name": "Nifty",
      "repo": "facebook/nifty",
      "tags": "rpc",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.rest-ql-core",
      "imports": "restql.core.",
      "name": "restQL-Core",
      "repo": "B2W-BIT/restQL-core-java",
      "tags": "microservices",
      "tech": "cloud",
      "status": "awaiting-model"
    },
    {
      "id": "java.ribbon",
      "imports": "com.netflix.ribbon.",
      "name": "Ribbon",
      "repo": "Netflix/ribbon",
      "tags": "rpc",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.spark",
      "imports": "spark",
      "name": "Spark",
      "repo": "perwendel/spark",
      "tags": "cluster-computing",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.spotify",
      "imports": "com.spotify.docker",
      "name": "Docker client",
      "repo": "spotify/docker-client",
      "tags": "docker",
      "tech": "cloud",
      "status": "awaiting-model"
    },
    {
      "id": "java.zero-mq",
      "imports": "zmq.",
      "name": "ZeroMQ",
      "repo": "zeromq/jeromq",
      "tags": "message-queue",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.zuul",
      "imports": "com.netflix.zuul.",
      "name": "Zuul",
      "repo": "Netflix/zuul",
      "tags": "edge-service",
      "tech": "cloud",
      "status": "model-ready"
    },
    {
      "id": "java.javers",
      "imports": "org.javers",
      "name": "JaVers",
      "repo": "javers/javers",
      "tags": "auditing-diff-framework",
      "tech": "code-processing",
      "status": "awaiting-model"
    },
    {
      "id": "java.janino",
      "imports": "org.codehaus.janino",
      "name": "Janino",
      "repo": "janino-compiler/janino",
      "tags": "in-memory-java-compiler",
      "tech": "compilers",
      "status": "awaiting-model"
    },
    {
      "id": "java.javassist",
      "imports": "javassist",
      "name": "Javassist",
      "repo": "jboss-javassist/javassist",
      "tags": "java-bytecode",
      "tech": "compilers",
      "status": "awaiting-model"
    },
    {
      "id": "java.erdos-graph",
      "imports": "com.hendrix.erdos.",
      "name": "Erdos-Graph",
      "repo": "Erdos-Graph-Framework/Erdos",
      "tags": "graphs",
      "tech": "computational-science",
      "status": "model-ready"
    },
    {
      "id": "java.ja-co-p",
      "imports": "org.jacop.",
      "name": "JaCoP",
      "repo": "radsz/jacop",
      "tags": "optimization",
      "tech": "computational-science",
      "status": "model-ready"
    },
    {
      "id": "java.jgraph-t",
      "imports": "org.jgrapht.",
      "name": "JGraphT",
      "repo": "jgrapht/jgrapht",
      "tags": "graphs",
      "tech": "computational-science",
      "status": "model-ready"
    },
    {
      "id": "java.mines",
      "imports": "edu.mines.jtk.",
      "name": "Mines",
      "repo": "MinesJTK/jtk",
      "tags": "toolkit",
      "tech": "computational-science",
      "status": "model-ready"
    },
    {
      "id": "java.mx-graph",
      "imports": "com.mxgraph.",
      "name": "mxGraph",
      "repo": "jgraph/jgraphx",
      "tags": "graph-visualization",
      "tech": "computational-science",
      "status": "model-ready"
    },
    {
      "id": "java.tess4-j",
      "imports": "net.sourceforge.tess4j.",
      "name": "Tess4J",
      "repo": "nguyenq/tess4j",
      "tags": "ocr",
      "tech": "computer-vision",
      "status": "model-ready"
    },
    {
      "id": "java.jetcd",
      "imports": "com.justinsb.etcd.",
      "name": "jetcd",
      "repo": "justinsb/jetcd",
      "tags": "distributed",
      "tech": "configuration",
      "status": "model-ready"
    },
    {
      "id": "java.kaconf",
      "imports": "info.macias.kaconf.",
      "name": "KAConf",
      "repo": "mariomac/kaconf",
      "tags": "annotations",
      "tech": "configuration",
      "status": "model-ready"
    },
    {
      "id": "java.owner",
      "imports": "org.aeonbits.owner.",
      "name": "OWNER",
      "repo": "lviggiano/owner",
      "tags": "properties",
      "tech": "configuration",
      "status": "model-ready"
    },
    {
      "id": "java.typesafe",
      "imports": "com.typesafe",
      "name": "typesafe",
      "repo": "lightbend/config",
      "tags": "java-HOCON",
      "tech": "configuration",
      "status": "awaiting-model"
    },
    {
      "id": "java.typesafe-config",
      "imports": "com.typesafe.config.",
      "name": "Typesafe Config",
      "repo": "typesafehub/config",
      "tags": "java-json",
      "tech": "configuration",
      "status": "model-ready"
    },
    {
      "id": "java.dex",
      "imports": "com.dexvis.dex.",
      "name": "Dex",
      "repo": "PatMartin/Dex",
      "tags": "visualization",
      "tech": "data-science",
      "status": "model-ready"
    },
    {
      "id": "java.gephi",
      "imports": "org.gephi.",
      "name": "Gephi",
      "repo": "gephi/gephi",
      "tags": "visualization",
      "tech": "data-science",
      "status": "awaiting-model"
    },
    {
      "id": "java.hdrhistogram",
      "imports": "org.HdrHistogram",
      "name": "HdrHistogram",
      "repo": "HdrHistogram/HdrHistogram",
      "tags": "histogram",
      "tech": "data-science",
      "status": "awaiting-model"
    },
    {
      "id": "java.tablesaw",
      "imports": "tech.tablesaw.",
      "name": "Tablesaw",
      "repo": "lwhite1/tablesaw",
      "tags": "data-analysis",
      "tech": "data-science",
      "status": "model-ready"
    },
    {
      "id": "java.adt4j",
      "imports": "com.github.sviperll.adt4j.",
      "name": "adt4j",
      "repo": "sviperll/adt4j",
      "tags": "algebraic",
      "tech": "data-structures",
      "status": "model-ready"
    },
    {
      "id": "java.agrona",
      "imports": "org.agrona.",
      "name": "Agrona",
      "repo": "real-logic/Agrona",
      "tags": "high-performance",
      "tech": "data-structures",
      "status": "model-ready"
    },
    {
      "id": "java.big-queue",
      "imports": "com.leansoft.bigqueue.",
      "name": "Big Queue",
      "repo": "bulldog2011/bigqueue",
      "tags": "mem-map-queue",
      "tech": "data-structures",
      "status": "model-ready"
    },
    {
      "id": "java.eclipse-collections",
      "imports": "org.eclipse.collections.",
      "name": "Eclipse Collections",
      "repo": "eclipse/eclipse-collections",
      "tags": "collections",
      "tech": "data-structures",
      "status": "model-ready"
    },
    {
      "id": "java.fastutil",
      "imports": "it.unimi.dsi.fastutil",
      "name": "fastutil",
      "repo": "vigna/fastutil",
      "tags": "collections",
      "tech": "data-structures",
      "status": "awaiting-model"
    },
    {
      "id": "java.kolobke",
      "imports": "com.koloboke.",
      "name": "Kolobke",
      "repo": "OpenHFT/Koloboke",
      "tags": "collections",
      "tech": "data-structures",
      "status": "model-ready"
    },
    {
      "id": "java.tape",
      "imports": "com.squareup.tape2.",
      "name": "Tape",
      "repo": "square/tape",
      "tags": "queues",
      "tech": "data-structures",
      "status": "model-ready"
    },
    {
      "id": "java.automon",
      "imports": "org.automon.",
      "name": "Automon",
      "repo": "stevensouza/automon",
      "tags": "monitoring",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.cglib",
      "imports": "net.sf.cglib.",
      "name": "cglib",
      "repo": "cglib/cglib",
      "tags": "byte-code",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.ch.qos.logback",
      "imports": "org.slf4j",
      "name": "logback",
      "repo": "qos-ch/logback",
      "tags": "logging",
      "tech": "diagnostics",
      "status": "awaiting-model"
    },
    {
      "id": "java.crashlytics",
      "imports": "com.crashlytics.",
      "name": "Crashlytics",
      "repo": "",
      "examples": "sitepoint-editors/Crashlytics, Nekromancer/ScoreKeeper, Nekromancer/HabitsTracker",
      "tags": "alarms, tracing, monitoring, metrics",
      "tech": "diagnostics",
      "status": "awaiting-model"
    },
    {
      "id": "java.google-reflections",
      "imports": "org.reflections.",
      "name": "reflections",
      "repo": "ronmamo/reflections",
      "tags": "introspection-reflection",
      "tech": "diagnostics",
      "status": "awaiting-model"
    },
    {
      "id": "java.java-melody",
      "imports": "net.bull.javamelody.",
      "name": "JavaMelody",
      "repo": "javamelody/javamelody",
      "tags": "monitoring",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.jmxtrans",
      "imports": "com.googlecode.jmxtrans.",
      "name": "jmxtrans",
      "repo": "jmxtrans/jmxtrans",
      "tags": "monitoring",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.log4j2",
      "imports": "org.apache.logging.log4j.",
      "name": "Log4j2",
      "repo": "apache/logging-log4j2",
      "tags": "logging",
      "tech": "diagnostics",
      "status": "awaiting-model"
    },
    {
      "id": "java.logbook",
      "imports": "org.zalando.logbook.",
      "name": "Logbook",
      "repo": "zalando/logbook",
      "tags": "logging",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.logger",
      "imports": "com.orhanobut.logger.",
      "name": "Logger",
      "repo": "orhanobut/logger",
      "tags": "logging",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.logstash-logback",
      "imports": "net.logstash.logback",
      "name": "Logback JSON encoder",
      "repo": "logstash/logstash-logback-encoder",
      "tags": "logging",
      "tech": "diagnostics",
      "status": "awaiting-model"
    },
    {
      "id": "java.metrics",
      "imports": "com.codahale.metrics.",
      "name": "metrics",
      "repo": "dropwizard/metrics",
      "tags": "metrics",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.nudge4j",
      "imports": "nudge4j.",
      "name": "nudge4j",
      "repo": "lorenzoongithub/nudge4j",
      "tags": "jvm-control",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.pinpoint",
      "imports": "com.navercorp.pinpoint.",
      "name": "Pinpoint",
      "repo": "naver/pinpoint",
      "tags": "monitoring",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.slf4j",
      "imports": "org.slf4j.",
      "name": "slf4j",
      "repo": "qos-ch/slf4j",
      "tags": "logging",
      "tech": "diagnostics",
      "status": "awaiting-model"
    },
    {
      "id": "java.stagemonitor",
      "imports": "org.stagemonitor.",
      "name": "Stagemonitor",
      "repo": "stagemonitor/stagemonitor",
      "tags": "monitoring",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.sysmon",
      "imports": "com.palantir.opensource.sysmon.",
      "name": "Sysmon",
      "repo": "palantir/Sysmon",
      "tags": "monitoring",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.timber",
      "imports": "timber.log.",
      "name": "Timber",
      "repo": "JakeWharton/timber",
      "tags": "android-logging",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.tracer",
      "imports": "org.zalando.tracer.",
      "name": "Tracer",
      "repo": "zalando/tracer",
      "tags": "tracing",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.zipkin",
      "imports": "zipkin",
      "name": "Zipkin",
      "repo": "openzipkin/zipkin",
      "tags": "tracing",
      "tech": "diagnostics",
      "status": "model-ready"
    },
    {
      "id": "java.deep-learning4j",
      "imports": "org.deeplearning4j.",
      "name": "DeepLearning4j",
      "repo": "deeplearning4j/deeplearning4j",
      "tags": "framework",
      "tech": "dl",
      "status": "model-ready"
    },
    {
      "id": "java.mxnet",
      "imports": "org.apache.mxnet",
      "name": "mxnet",
      "repo": "apache/incubator-mxnet",
      "tags": "framework",
      "tech": "dl",
      "status": "awaiting-model"
    },
    {
      "id": "java.fast-serialization",
      "imports": "org.nustaq.serialization.",
      "name": "fast-serialization",
      "repo": "RuedigerMoeller/fast-serialization",
      "tags": "encoding",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.flat-buffers",
      "imports": "com.google.flatbuffers.",
      "name": "FlatBuffers",
      "repo": "google/flatbuffers",
      "tags": "encoding",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.kryo",
      "imports": "com.esotericsoftware.kryo.",
      "name": "Kryo",
      "repo": "EsotericSoftware/kryo",
      "tags": "encoding",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.message-pack",
      "imports": "org.msgpack.",
      "name": "MessagePack",
      "repo": "msgpack/msgpack-java",
      "tags": "encoding",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.okio",
      "imports": "okio.",
      "name": "Okio",
      "repo": "square/okio",
      "tags": "io-streams",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.parceler",
      "imports": "org.parceler.",
      "name": "Parceler",
      "repo": "johncarl81/parceler",
      "tags": "android-serialization",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.protocol-buffers",
      "imports": "com.google.protobuf.",
      "name": "Protocol Buffers",
      "repo": "google/protobuf",
      "tags": "encoding",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.sbe",
      "imports": "uk.co.real_logic.sbe.",
      "name": "SBE",
      "repo": "real-logic/simple-binary-encoding",
      "tags": "encoding",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.snappy-java",
      "imports": "org.xerial.snappy",
      "name": "snappy-java",
      "repo": "xerial/snappy-java",
      "tags": "compression",
      "tech": "efficient-data",
      "status": "awaiting-model"
    },
    {
      "id": "java.wire",
      "imports": "com.squareup.wire.",
      "name": "Wire",
      "repo": "square/wire",
      "tags": "encoding",
      "tech": "efficient-data",
      "status": "model-ready"
    },
    {
      "id": "java.auto",
      "imports": "com.google.auto.",
      "name": "Auto",
      "repo": "google/auto",
      "tags": "code-generators",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.free-builder",
      "imports": "org.inferred.freebuilder.",
      "name": "FreeBuilder",
      "repo": "google/FreeBuilder",
      "tags": "code-generators",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.hotswap-agent",
      "imports": "org.hotswap.agent.",
      "name": "Hotswap Agent",
      "repo": "HotswapProjects/HotswapAgent",
      "tags": "class-reloading",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.java-poet",
      "imports": "com.squareup.javapoet.",
      "name": "JavaPoet",
      "repo": "square/javapoet",
      "tags": "code-generators",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.leak-canary",
      "imports": "com.squareup.leakcanary.",
      "name": "LeakCanary",
      "repo": "square/leakcanary",
      "tags": "leak-detection",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.lombok",
      "imports": "lombok.",
      "name": "Lombok",
      "repo": "rzwitserloot/lombok",
      "tags": "code-generators",
      "tech": "eng-tools",
      "status": "awaiting-model"
    },
    {
      "id": "java.mutability-detector",
      "imports": "org.mutabilitydetector.",
      "name": "Mutability Detector",
      "repo": "MutabilityDetector/MutabilityDetector",
      "tags": "mutability",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.spring-source",
      "imports": "org.springsource.",
      "name": "SpringSource",
      "repo": "spring-projects/spring-loaded",
      "tags": "class-reloading",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.springfox",
      "imports": "springfox",
      "name": "Springfox",
      "repo": "springfox/springfox",
      "tags": "documentation",
      "tech": "eng-tools",
      "status": "awaiting-model"
    },
    {
      "id": "java.stetho",
      "imports": "com.facebook.stetho.",
      "name": "Stetho",
      "repo": "facebook/stetho",
      "tags": "debugging",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.type-tools",
      "imports": "net.jodah.typetools.",
      "name": "TypeTools",
      "repo": "jhalterman/typetools",
      "tags": "type-info",
      "tech": "eng-tools",
      "status": "model-ready"
    },
    {
      "id": "java.liferay-portal",
      "imports": "com.liferay.portal",
      "name": "Liferay Portal",
      "repo": "liferay/liferay-portal",
      "tags": "platform",
      "tech": "enterprise",
      "status": "awaiting-model"
    },
    {
      "id": "java.orienteer",
      "imports": "org.orienteer.",
      "name": "Orienteer",
      "repo": "OrienteerBAP/Orienteer",
      "tags": "platform",
      "tech": "enterprise",
      "status": "model-ready"
    },
    {
      "id": "java.alibaba-druid",
      "imports": "com.alibaba.druid.",
      "name": "Alibaba Druid",
      "repo": "alibaba/druid",
      "tags": "connection-pool",
      "tech": "faster-code",
      "status": "model-ready"
    },
    {
      "id": "java.caffeine",
      "imports": "com.github.benmanes.caffeine.",
      "name": "Caffeine",
      "repo": "ben-manes/caffeine",
      "tags": "caching",
      "tech": "faster-code",
      "status": "model-ready"
    },
    {
      "id": "java.hikari-cp",
      "imports": "com.zaxxer.hikari.",
      "name": "HikariCP",
      "repo": "brettwooldridge/HikariCP",
      "tags": "connection-pool",
      "tech": "faster-code",
      "status": "model-ready"
    },
    {
      "id": "java.jctools",
      "imports": "org.jctools.",
      "name": "JCTools",
      "repo": "JCTools/JCTools",
      "tags": "concurrency",
      "tech": "faster-code",
      "status": "model-ready"
    },
    {
      "id": "java.lmax-disruptor",
      "imports": "com.lmax.disruptor.",
      "name": "LMAX Disruptor",
      "repo": "LMAX-Exchange/disruptor",
      "tags": "concurrency",
      "tech": "faster-code",
      "status": "model-ready"
    },
    {
      "id": "java.mapdb",
      "imports": "org.mapdb",
      "name": "MapDB",
      "repo": "jankotek/MapDB",
      "tags": "concurrent-collections",
      "tech": "faster-code",
      "status": "awaiting-model"
    },
    {
      "id": "java.quasar",
      "imports": "co.paralleluniverse",
      "name": "Quasar",
      "repo": "puniverse/quasar",
      "tags": "async-programming",
      "tech": "faster-code",
      "status": "awaiting-model"
    },
    {
      "id": "java.geo",
      "imports": "com.github.davidmoten.geo.",
      "name": "geo",
      "repo": "davidmoten/geo",
      "tags": "geohashing",
      "tech": "geo-maps",
      "status": "model-ready"
    },
    {
      "id": "java.graph-hopper",
      "imports": "com.graphhopper.",
      "name": "GraphHopper",
      "repo": "graphhopper/graphhopper",
      "tags": "openstreetmap",
      "tech": "geo-maps",
      "status": "model-ready"
    },
    {
      "id": "java.mapsforge",
      "imports": "org.mapsforge.",
      "name": "Mapsforge",
      "repo": "mapsforge/mapsforge",
      "tags": "android-maps",
      "tech": "geo-maps",
      "status": "model-ready"
    },
    {
      "id": "java.spatial4j",
      "imports": "org.locationtech.spatial4j.",
      "name": "Spatial4j",
      "repo": "locationtech/spatial4j",
      "tags": "geospatial",
      "tech": "geo-maps",
      "status": "model-ready"
    },
    {
      "id": "java.fresco",
      "imports": "com.facebook.fresco.",
      "name": "Fresco",
      "repo": "facebook/fresco",
      "tags": "android-images",
      "tech": "graphics-gaming",
      "status": "model-ready"
    },
    {
      "id": "java.glide",
      "imports": "com.bumptech.glide.",
      "name": "Glide",
      "repo": "bumptech/glide",
      "tags": "android-images",
      "tech": "graphics-gaming",
      "status": "model-ready"
    },
    {
      "id": "java.lib-gdx",
      "imports": "com.badlogic.gdx.",
      "name": "libGDX",
      "repo": "libgdx/libgdx",
      "tags": "game-framework",
      "tech": "graphics-gaming",
      "status": "model-ready"
    },
    {
      "id": "java.lottie",
      "imports": "com.airbnb.lottie.",
      "name": "Lottie",
      "repo": "airbnb/lottie-android",
      "tags": "android-effects",
      "tech": "graphics-gaming",
      "status": "model-ready"
    },
    {
      "id": "java.mpandroid-chart",
      "imports": "com.github.mikephil.charting.",
      "name": "MPAndroidChart",
      "repo": "PhilJay/MPAndroidChart",
      "tags": "android-charts",
      "tech": "graphics-gaming",
      "status": "model-ready"
    },
    {
      "id": "java.picasso",
      "imports": "com.squareup.picasso.",
      "name": "Picasso",
      "repo": "square/picasso",
      "tags": "android-images",
      "tech": "graphics-gaming",
      "status": "model-ready"
    },
    {
      "id": "java.universal-image-loader",
      "imports": "com.nostra13.universalimageloader.",
      "name": "Universal Image Loader",
      "repo": "nostra13/Android-Universal-Image-Loader",
      "tags": "android-images",
      "tech": "graphics-gaming",
      "status": "model-ready"
    },
    {
      "id": "java.javafx",
      "imports": "javafx.",
      "name": "JavaFX",
      "repo": "javafxports/openjdk-jfx",
      "tags": "gui",
      "tech": "gui",
      "status": "model-ready"
    },
    {
      "id": "java.lanterna",
      "imports": "com.googlecode.lanterna.",
      "name": "Lanterna",
      "repo": "mabe02/lanterna",
      "tags": "library",
      "tech": "gui",
      "status": "model-ready"
    },
    {
      "id": "java.rsyntaxtextarea",
      "imports": "org.fife.ui",
      "name": "RSyntaxTextArea",
      "repo": "bobbylight/RSyntaxTextArea",
      "tags": "syntax-highlighting",
      "tech": "gui",
      "status": "awaiting-model"
    },
    {
      "id": "java.swing",
      "imports": "javax.swing.",
      "name": "Swing",
      "repo": "AdoptOpenJDK/openjdk-jdk11",
      "tags": "toolkit",
      "tech": "gui",
      "status": "insufficient-data"
    },
    {
      "id": "java.android-image-cropper",
      "imports": "com.theartofdev.edmodo.cropper.",
      "name": "Android Image Cropper",
      "repo": "ArthurHub/Android-Image-Cropper",
      "tags": "android-images",
      "tech": "images",
      "status": "model-ready"
    },
    {
      "id": "java.imgscalr",
      "imports": "org.imgscalr.",
      "name": "Imgscalr",
      "repo": "thebuzzmedia/imgscalr",
      "tags": "scaling",
      "tech": "images",
      "status": "model-ready"
    },
    {
      "id": "java.thumbnailator",
      "imports": "net.coobird.thumbnailator.",
      "name": "Thumbnailator",
      "repo": "coobird/thumbnailator",
      "tags": "thumbnails",
      "tech": "images",
      "status": "model-ready"
    },
    {
      "id": "java.twelve-monkeys",
      "imports": "com.twelvemonkeys.",
      "name": "TwelveMonkeys",
      "repo": "haraldk/TwelveMonkeys",
      "tags": "image-formats",
      "tech": "images",
      "status": "model-ready"
    },
    {
      "id": "java.zxing",
      "imports": "com.google.zxing.",
      "name": "ZXing",
      "repo": "zxing/zxing",
      "tags": "bar-codes",
      "tech": "images",
      "status": "model-ready"
    },
    {
      "id": "java.android-async-http-client",
      "imports": "com.loopj.android.http",
      "name": "Android Async Http Client",
      "repo": "loopj/android-async-http",
      "tags": "http-client",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.async-http-client",
      "imports": "org.asynchttpclient.",
      "name": "Async Http Client",
      "repo": "AsyncHttpClient/async-http-client",
      "tags": "http-client",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.auth0",
      "imports": "com.auth0",
      "name": "JWT",
      "repo": "auth0/java-jwt",
      "tags": "json-web-token",
      "tech": "internet",
      "status": "awaiting-model"
    },
    {
      "id": "java.crawler4j",
      "imports": "edu.uci.ics.crawler4j.",
      "name": "crawler4j",
      "repo": "yasserg/crawler4j",
      "tags": "web-crawler",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.eclipse-jetty",
      "imports": "org.eclipse.jetty",
      "name": "Eclipse Jetty",
      "repo": "eclipse/jetty.project",
      "tags": "web-server",
      "tech": "internet",
      "status": "awaiting-model"
    },
    {
      "id": "java.feign",
      "imports": "feign.",
      "name": "Feign",
      "repo": "Netflix/feign",
      "tags": "http-client",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.ghostdriver",
      "imports": "com.github.detro.ghostdriver",
      "name": "Ghost Driver",
      "repo": "detro/GhostDriver",
      "tags": "web-driver",
      "tech": "internet",
      "status": "awaiting-model"
    },
    {
      "id": "java.nano-httpd",
      "imports": "org.nanohttpd.",
      "name": "NanoHttpd",
      "repo": "NanoHttpd/nanohttpd",
      "tags": "embedded-http-server",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.ok-http",
      "imports": "okhttp3.",
      "name": "OkHttp",
      "repo": "square/okhttp",
      "tags": "http-client",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.retrofit",
      "imports": "retrofit2.",
      "name": "Retrofit",
      "repo": "square/retrofit",
      "tags": "rest-client",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.riptide",
      "imports": "org.zalando.riptide.",
      "name": "Riptide",
      "repo": "zalando/riptide",
      "tags": "http-client",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.rometools",
      "imports": "com.rometools",
      "name": "Rome",
      "repo": "rometools/rome",
      "tags": "rss-atom-feeds",
      "tech": "internet",
      "status": "awaiting-model"
    },
    {
      "id": "java.urnlib",
      "imports": "de.slub.urn.",
      "name": "urnlib",
      "repo": "slub/urnlib",
      "tags": "urls",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.web-magic",
      "imports": "us.codecraft.webmagic.",
      "name": "Web Magic",
      "repo": "code4craft/webmagic",
      "tags": "web-crawler",
      "tech": "internet",
      "status": "model-ready"
    },
    {
      "id": "java.java-cpp",
      "imports": "org.bytedeco.javacpp.",
      "name": "JavaCPP",
      "repo": "bytedeco/javacpp",
      "tags": "java-cpp",
      "tech": "interoperability",
      "status": "model-ready"
    },
    {
      "id": "java.jna",
      "imports": "com.sun.jna.",
      "name": "JNA",
      "repo": "java-native-access/jna",
      "tags": "java-native",
      "tech": "interoperability",
      "status": "model-ready"
    },
    {
      "id": "java.jnr-ffi",
      "imports": "jnr.ffi.",
      "name": "jnr-ffi",
      "repo": "jnr/jnr-ffi",
      "tags": "java-native",
      "tech": "interoperability",
      "status": "model-ready"
    },
    {
      "id": "java.mybatis-mapper",
      "imports": "tk.mybatis",
      "name": "Mybatis Mapper",
      "repo": "abel533/Mapper",
      "tags": "mybatis-mapper",
      "tech": "interoperability",
      "status": "awaiting-model"
    },
    {
      "id": "java.mybatis-spring",
      "imports": "org.mybatis",
      "name": "MyBatis Spring Adapter",
      "repo": "mybatis/spring",
      "tags": "mybatis-spring",
      "tech": "interoperability",
      "status": "awaiting-model"
    },
    {
      "id": "java.mybatis-spring-boot",
      "imports": "org.mybatis.spring.boot",
      "name": "Mybatis Spring Boot",
      "repo": "mybatis/spring-boot-starter",
      "tags": "mybatis-spring",
      "tech": "interoperability",
      "status": "awaiting-model"
    },
    {
      "id": "java.physical-web",
      "imports": "org.physical_web",
      "name": "Physical Web",
      "repo": "google/physical-web",
      "tags": "object-discovery",
      "tech": "iot",
      "status": "model-ready"
    },
    {
      "id": "java.apache-httpcomponents",
      "imports": "org.apache.hc",
      "name": "Apache HttpClient",
      "repo": "apache/httpcomponents-client",
      "tags": "http-client",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.apache-httpcomponents-core",
      "imports": "org.apache.http",
      "name": "Apache Httpcomponents Core",
      "repo": "apache/httpcomponents-core",
      "tags": "httplib",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.apereo-cas",
      "imports": "org.apereo.cas",
      "name": "CAS",
      "repo": "apereo/cas",
      "tags": "cas-server",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.blade",
      "imports": "com.blade.",
      "name": "Blade",
      "repo": "biezhi/blade",
      "tags": "framework",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.comsat",
      "imports": "comsat.",
      "name": "COMSAT",
      "repo": "puniverse/comsat",
      "tags": "apps",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.dropwizard",
      "imports": "io.dropwizard",
      "name": "Dropwizard",
      "repo": "dropwizard/dropwizard",
      "tags": "rest-framework",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.java-jwt",
      "imports": "io.jsonwebtoken.",
      "name": "Java JWT",
      "repo": "jwtk/jjwt",
      "tags": "jwt",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.jboss.resteasy",
      "imports": "org.jboss.resteasy",
      "name": "RESTEasy",
      "repo": "resteasy/Resteasy",
      "tags": "rest-jaxrs",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.jsoup",
      "imports": "org.jsoup",
      "name": "jsoup",
      "repo": "jhy/jsoup",
      "tags": "html-parser",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.pac4j",
      "imports": "org.pac4j.",
      "name": "pac4j",
      "repo": "pac4j/pac4j",
      "tags": "oauth",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.rest-express",
      "imports": "org.restexpress.",
      "name": "RestExpress",
      "repo": "RestExpress/RestExpress",
      "tags": "rest",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.rest-li",
      "imports": "com.linkedin.restli.",
      "name": "Rest.li",
      "repo": "linkedin/rest.li",
      "tags": "rest-json",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.restlet",
      "imports": "org.restlet.",
      "name": "Restlet",
      "repo": "restlet/restlet-framework-java",
      "tags": "rest",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.spring-boot",
      "imports": "org.springframework.boot.",
      "name": "Spring Boot",
      "repo": "spring-projects/spring-boot",
      "tags": "applications",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.spring-framework",
      "imports": "org.springframework.",
      "name": "Spring Framework",
      "repo": "spring-projects/spring-framework",
      "tags": "framework",
      "tech": "java-web",
      "status": "model-ready"
    },
    {
      "id": "java.springframework-security",
      "imports": "org.springframework.security",
      "name": "Spring Security",
      "repo": "spring-projects/spring-security",
      "tags": "spring-security",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.swagger",
      "imports": "io.swagger",
      "name": "Swagger Core",
      "repo": "swagger-api/swagger-core",
      "tags": "openapi-specification",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.thymeleaf",
      "imports": "org.thymeleaf",
      "name": "thymeleaf",
      "repo": "thymeleaf/thymeleaf",
      "tags": "template-engine",
      "tech": "java-web",
      "status": "awaiting-model"
    },
    {
      "id": "java.jsat",
      "imports": "jsat.",
      "name": "JSAT",
      "repo": "EdwardRaff/JSAT",
      "tags": "toolkit",
      "tech": "ml",
      "status": "model-ready"
    },
    {
      "id": "java.oryx",
      "imports": "com.cloudera.oryx.",
      "name": "Oryx",
      "repo": "OryxProject/oryx",
      "tags": "large-scale",
      "tech": "ml",
      "status": "model-ready"
    },
    {
      "id": "java.aeron",
      "imports": "io.aeron.",
      "name": "Aeron",
      "repo": "real-logic/Aeron",
      "tags": "message-transport",
      "tech": "networking",
      "status": "model-ready"
    },
    {
      "id": "java.java-websocket",
      "imports": "org.java-websocket",
      "name": "java-websocket",
      "repo": "TooTallNate/Java-WebSocket",
      "tags": "websocket",
      "tech": "networking",
      "status": "awaiting-model"
    },
    {
      "id": "java.netty",
      "imports": "io.netty.",
      "name": "Netty",
      "repo": "netty/netty",
      "tags": "sockets",
      "tech": "networking",
      "status": "model-ready"
    },
    {
      "id": "java.cog-comp",
      "imports": "edu.illinois.cs.cogcomp.",
      "name": "CogComp",
      "repo": "CogComp/cogcomp-nlp",
      "tags": "toolkit",
      "tech": "nlp",
      "status": "model-ready"
    },
    {
      "id": "java.java-parser",
      "imports": "com.github.javaparser",
      "name": "JavaParser",
      "repo": "javaparser/javaparser",
      "tags": "java",
      "tech": "parsing",
      "status": "model-ready"
    },
    {
      "id": "java.java-symbol-solver",
      "imports": "com.github.javaparser.symbolsolver",
      "name": "JavaSymbolSolver",
      "repo": "javaparser/javasymbolsolver",
      "tags": "ast-analysis",
      "tech": "parsing",
      "status": "model-ready"
    },
    {
      "id": "java.pegdown",
      "imports": "org.pegdown",
      "name": "pegdown",
      "repo": "sirthias/pegdown",
      "tags": "markdown-processor",
      "tech": "parsing",
      "status": "awaiting-model"
    },
    {
      "id": "java.circuit-breaker",
      "imports": "com.github.mtakaki.dropwizard.circuitbreaker.",
      "name": "Circuit Breaker",
      "repo": "mtakaki/dropwizard-circuitbreaker",
      "tags": "circuit-breaker",
      "tech": "reliable-code",
      "status": "model-ready"
    },
    {
      "id": "java.circuit-breakerresilience4j",
      "imports": "io.github.resilience4j.circuitbreaker.",
      "name": "Circuit Breaker(resilience4j)",
      "repo": "javaslang/javaslang-circuitbreaker",
      "tags": "circuit-breaker",
      "tech": "reliable-code",
      "status": "model-ready"
    },
    {
      "id": "java.failsafe",
      "imports": "net.jodah.failsafe.",
      "name": "Failsafe",
      "repo": "jhalterman/failsafe",
      "tags": "fault-tolerance",
      "tech": "reliable-code",
      "status": "model-ready"
    },
    {
      "id": "java.flexy-pool",
      "imports": "com.vladmihalcea.flexypool.",
      "name": "Flexy Pool",
      "repo": "vladmihalcea/flexy-pool",
      "tags": "resilience",
      "tech": "reliable-code",
      "status": "model-ready"
    },
    {
      "id": "java.hystrix",
      "imports": "com.netflix.hystrix.",
      "name": "Hystrix",
      "repo": "Netflix/Hystrix",
      "tags": "fault-tolerance",
      "tech": "reliable-code",
      "status": "model-ready"
    },
    {
      "id": "java.resilience4j",
      "imports": "io.github.resilience4j.",
      "name": "Resilience4j",
      "repo": "resilience4j/resilience4j",
      "tags": "fault-tolerance",
      "tech": "reliable-code",
      "status": "model-ready"
    },
    {
      "id": "java.ctre-phoenix",
      "imports": "com.ctre.phoenix.",
      "name": "Phoenix",
      "repo": "CrossTheRoadElec/Phoenix-api",
      "tags": "hardware",
      "tech": "robotics",
      "status": "awaiting-model"
    },
    {
      "id": "java.wpilibj",
      "imports": "edu.wpi.first.wpilibj.",
      "name": "WPILib",
      "repo": "wpilibsuite/allwpilib",
      "tags": "hardware",
      "tech": "robotics",
      "status": "awaiting-model"
    },
    {
      "id": "java.hdiv",
      "imports": "org.hdiv.",
      "name": "Hdiv",
      "repo": "hdiv/hdiv",
      "tags": "self-protection",
      "tech": "security",
      "status": "model-ready"
    },
    {
      "id": "java.keycloak",
      "imports": "org.keycloak",
      "name": "Keycloak",
      "repo": "keycloak/keycloak",
      "tags": "access-management",
      "tech": "security",
      "status": "awaiting-model"
    },
    {
      "id": "java.keyczar",
      "imports": "org.keyczar.",
      "name": "Keyczar",
      "repo": "google/keyczar",
      "tags": "cryptography",
      "tech": "security",
      "status": "model-ready"
    },
    {
      "id": "java.nbvcxz",
      "imports": "me.gosimple.nbvcxz.",
      "name": "Nbvcxz",
      "repo": "GoSimpleLLC/nbvcxz",
      "tags": "password-strength",
      "tech": "security",
      "status": "model-ready"
    },
    {
      "id": "java.packr",
      "imports": "com.badlogicgames.packr.",
      "name": "packr",
      "repo": "libgdx/packr",
      "tags": "executable-jar",
      "tech": "software-distribution",
      "status": "model-ready"
    },
    {
      "id": "java.waffles",
      "imports": "org.skife.waffles.",
      "name": "Waffles",
      "repo": "brianm/really-executable-jars-maven-plugin",
      "tags": "executable-jar",
      "tech": "software-distribution",
      "status": "model-ready"
    },
    {
      "id": "java.chronicle-queue",
      "imports": "net.openhft.chronicle.",
      "name": "Chronicle Queue",
      "repo": "OpenHFT/Chronicle-Map",
      "tags": "nosql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.druid",
      "imports": "io.druid.",
      "name": "Druid",
      "repo": "druid-io/druid",
      "tags": "nosql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.e-xist-db",
      "imports": "org.exist.",
      "name": "eXist-db",
      "repo": "eXist-db/exist",
      "tags": "nosql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.green-dao",
      "imports": "org.greenrobot.greendao",
      "name": "greenDAO",
      "repo": "greenrobot/greenDAO",
      "tags": "orm",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.hibernate",
      "imports": "org.hibernate",
      "name": "Hibernate",
      "repo": "hibernate/hibernate-orm",
      "tags": "orm",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.jest",
      "imports": "io.searchbox.",
      "name": "JEST",
      "repo": "searchbox-io/Jest",
      "tags": "nosql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.jimfs",
      "imports": "com.google.common.jimfs.",
      "name": "Jimfs",
      "repo": "google/jimfs",
      "tags": "in-memory",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.jpa",
      "imports": "javax.persistence.",
      "name": "JPA",
      "repo": "eclipse-ee4j/jpa-api",
      "tags": "orm",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.maria-db4j",
      "imports": "ch.vorburger.mariadb4j.",
      "name": "MariaDB4j",
      "repo": "vorburger/MariaDB4j",
      "tags": "sql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.mariadb-jdbc",
      "imports": "org.mariadb.jdbc",
      "name": "MariaDB java connector",
      "repo": "MariaDB/mariadb-connector-j",
      "tags": "mariadb",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.mchange",
      "imports": "com.mchange",
      "name": "mchange",
      "repo": "swaldman/c3p0",
      "tags": "jdbc-pooling",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.minio",
      "imports": "io.minio.",
      "name": "Minio",
      "repo": "minio/minio-java",
      "tags": "s3",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.mongodb",
      "imports": "org.mongodb",
      "name": "mongo-java-driver",
      "repo": "mongodb/mongo-java-driver",
      "tags": "mongodb",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.mybatis",
      "imports": "org.mybatis",
      "name": "MyBatis",
      "repo": "mybatis/mybatis-3",
      "tags": "sql",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.mysql",
      "imports": "com.mysql.cj",
      "name": "MySQL Connector/J",
      "repo": "mysql/mysql-connector-j",
      "tags": "mysql",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.neo4j",
      "imports": "org.neo4j",
      "name": "neo4j",
      "repo": "neo4j/neo4j",
      "tags": "graph-database",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.pagehelper",
      "imports": "com.github.pagehelper",
      "name": "PageHelper",
      "repo": "pagehelper/Mybatis-PageHelper",
      "tags": "mybatis-pagination",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.realm",
      "imports": "io.realm.",
      "name": "Realm",
      "repo": "realm/realm-java",
      "tags": "sql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.redis",
      "imports": "redis.clients.jedis.",
      "name": "Redis",
      "repo": "xetorthio/jedis",
      "tags": "nosql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.redisson",
      "imports": "org.redisson.",
      "name": "Redisson",
      "repo": "mrniko/redisson",
      "tags": "nosql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.requery",
      "imports": "io.requery.",
      "name": "requery",
      "repo": "requery/requery",
      "tags": "orm",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.room",
      "imports": "androidx.room.",
      "name": "Room",
      "repo": "https://android.googlesource.com/platform/frameworks/support",
      "examples": "googlesamples/android-architecture-components",
      "tags": "android-sql",
      "tech": "storage",
      "status": "awaiting-model"
    },
    {
      "id": "java.speedment",
      "imports": "com.speedment.",
      "name": "Speedment",
      "repo": "speedment/speedment",
      "tags": "orm",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.sqlbrite",
      "imports": "com.squareup.sqlbrite3.",
      "name": "SQL Brite",
      "repo": "square/sqlbrite",
      "tags": "android-sql",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.storio",
      "imports": "com.pushtorefresh.storio3.",
      "name": "StorIO",
      "repo": "pushtorefresh/storio",
      "tags": "android-sql, reactive",
      "tech": "storage",
      "status": "model-ready"
    },
    {
      "id": "java.allure",
      "imports": "io.qameta.allure.",
      "name": "Allure",
      "repo": "allure-framework/allure2",
      "tags": "test-reports",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.appium",
      "imports": "io.appium.",
      "name": "Appium",
      "repo": "appium/java-client",
      "tags": "mobile-testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.arch-unit",
      "imports": "com.tngtech.archunit.",
      "name": "ArchUnit",
      "repo": "TNG/ArchUnit",
      "tags": "architecture-rules",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.assertj",
      "imports": "org.assertj.core.",
      "name": "AssertJ",
      "repo": "joel-costigliola/assertj-core",
      "tags": "assertions",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.awaitility",
      "imports": "org.awaitility.",
      "name": "Awaitility",
      "repo": "awaitility/awaitility",
      "tags": "async-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.burst",
      "imports": "com.squareup.burst.",
      "name": "Burst",
      "repo": "square/burst",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.concurrent-unit",
      "imports": "net.jodah.concurrentunit.",
      "name": "ConcurrentUnit",
      "repo": "jhalterman/concurrentunit",
      "tags": "concurrency-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.cuckes-rest",
      "imports": "lv.ctco.cukes.",
      "name": "cuckes-rest",
      "repo": "ctco/cukes-rest",
      "tags": "bdd-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.cucumber",
      "imports": "cucumber.",
      "name": "Cucumber",
      "repo": "cucumber/cucumber-jvm",
      "tags": "bdd-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.easymock",
      "imports": "org.easymock",
      "name": "easymock",
      "repo": "easymock/easymock",
      "tags": "mock-objects",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.equalsverifier",
      "imports": "nl.jqno.equalsverifier",
      "name": "EqualsVerifier",
      "repo": "jqno/equalsverifier",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.fixture-factory",
      "imports": "br.com.six2six.fixturefactory.",
      "name": "Fixture Factory",
      "repo": "six2six/fixture-factory",
      "tags": "fake-objects",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.galen",
      "imports": "com.galenframework.",
      "name": "Galen",
      "repo": "galenframework/galen",
      "tags": "functional-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.hamcrest",
      "imports": "org.hamcrest.",
      "name": "Hamcrest",
      "repo": "hamcrest/JavaHamcrest",
      "tags": "matchers",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.j8-spec",
      "imports": "j8spec.",
      "name": "J8Spec",
      "repo": "j8spec/j8spec",
      "tags": "bdd-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.janala",
      "imports": "janala.",
      "name": "janala",
      "repo": "ksen007/janala2",
      "tags": "concolic-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.jfairy",
      "imports": "io.codearte.jfairy.",
      "name": "JFairy",
      "repo": "Codearte/jfairy",
      "tags": "fake-data",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.jmock",
      "imports": "org.jmock",
      "name": "JMock",
      "repo": "jmock-developers/jmock-library",
      "tags": "mocking",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.jsonassert",
      "imports": "org.skyscreamer.jsonassert",
      "name": "JSONassert",
      "repo": "skyscreamer/JSONassert",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.junit",
      "imports": "junit",
      "name": "JUnit",
      "repo": "junit-team/junit4",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.junit-dataprovider",
      "imports": "com.tngtech.java.junit.dataprovider.",
      "name": "junit-dataprovider",
      "repo": "TNG/junit-dataprovider",
      "tags": "junit-data",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.junit5",
      "imports": "junit",
      "name": "junit5",
      "repo": "junit-team/junit5",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.lambda-behave",
      "imports": "com.insightfullogic.lambdabehave.",
      "name": "Lambda Behave",
      "repo": "RichardWarburton/lambda-behave",
      "tags": "specification-framework",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.mockito",
      "imports": "org.mockito.",
      "name": "mockito",
      "repo": "mockito/mockito",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.moco",
      "imports": "com.github.dreamhead.moco.",
      "name": "Moco",
      "repo": "dreamhead/moco",
      "tags": "stubs-mocks",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.power-mock",
      "imports": "org.powermock.",
      "name": "PowerMock",
      "repo": "jayway/powermock",
      "tags": "mocks",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.powermock",
      "imports": "org.powermock",
      "name": "PowerMock",
      "repo": "powermock/powermock",
      "tags": "mocking-framework",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.raml-tester",
      "imports": "guru.nidi.ramltester.",
      "name": "raml-tester",
      "repo": "nidi3/raml-tester",
      "tags": "raml",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.randomized-testing",
      "imports": "com.carrotsearch.randomizedtesting.",
      "name": "Randomized Testing",
      "repo": "randomizedtesting/randomizedtesting",
      "tags": "junit-runner",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.rest-assured",
      "imports": "io.restassured.",
      "name": "REST-assured",
      "repo": "jayway/rest-assured",
      "tags": "rest-http-testing",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.selenide",
      "imports": "com.codeborne.selenide.",
      "name": "Selenide",
      "repo": "codeborne/selenide",
      "tags": "web/testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.selenium",
      "imports": "org.openqa.selenium.",
      "name": "Selenium",
      "repo": "SeleniumHQ/selenium",
      "tags": "web/testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.spock",
      "imports": "org.spockframework.",
      "name": "Spock",
      "repo": "spockframework/spock",
      "tags": "framework",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.system-rules",
      "imports": "org.junit.contrib.java.lang.system",
      "name": "System Rules",
      "repo": "stefanbirkner/system-rules",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.testcontainers",
      "imports": "org.testcontainers.",
      "name": "Testcontainers",
      "repo": "testcontainers/testcontainers-java",
      "tags": "throwaway-db",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.testng",
      "imports": "org.testng.",
      "name": "TestNG",
      "repo": "cbeust/testng",
      "tags": "unit-testing",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.tomakehurst",
      "imports": "com.github.tomakehurst",
      "name": "WireMock",
      "repo": "tomakehurst/wiremock",
      "tags": "http-server-mocks",
      "tech": "testing",
      "status": "awaiting-model"
    },
    {
      "id": "java.truth",
      "imports": "com.google.common.truth.",
      "name": "Truth",
      "repo": "google/truth",
      "tags": "assertions",
      "tech": "testing",
      "status": "model-ready"
    },
    {
      "id": "java.airline",
      "imports": "io.airlift.airline.",
      "name": "Airline",
      "repo": "airlift/airline",
      "tags": "argument-parsing",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.almanac-converter",
      "imports": "com.hypotemoose.cal.",
      "name": "Almanac Converter",
      "repo": "hypotemoose/almanac-converter",
      "tags": "date-time",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.codehaus.plexus",
      "imports": "org.codehaus.plexus",
      "name": "codehaus.plexus",
      "repo": "codehaus-plexus/plexus-utils",
      "tags": "classes-collection",
      "tech": "utils",
      "status": "awaiting-model"
    },
    {
      "id": "java.com-google-common",
      "imports": "com.google.common.",
      "name": "Guava",
      "repo": "google/guava",
      "tags": "toolkit",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.ical4j",
      "imports": "net.fortuna.ical4j.",
      "name": "Ical4j",
      "repo": "ical4j/ical4j",
      "tags": "date-time",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.joda-time",
      "imports": "org.joda.time.",
      "name": "Joda-Time",
      "repo": "JodaOrg/joda-time",
      "tags": "date-time",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.jodd",
      "imports": "org.jodd",
      "name": "Jodd",
      "repo": "oblac/jodd",
      "tags": "micro-frameworks",
      "tech": "utils",
      "status": "awaiting-model"
    },
    {
      "id": "java.stringtemplate",
      "imports": "org.stringtemplate",
      "name": "antlr",
      "repo": "antlr/stringtemplate4",
      "tags": "string-template",
      "tech": "utils",
      "status": "awaiting-model"
    },
    {
      "id": "java.three-ten",
      "imports": "org.threeten.bp.",
      "name": "ThreeTen",
      "repo": "ThreeTen/threetenbp",
      "tags": "date-time",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.time4-j",
      "imports": "net.time4j.",
      "name": "Time4J",
      "repo": "MenoData/Time4J",
      "tags": "date-time",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.underscore-java",
      "imports": "com.github.underscore.",
      "name": "underscore-java",
      "repo": "javadev/underscore-java",
      "tags": "toolkit",
      "tech": "utils",
      "status": "model-ready"
    },
    {
      "id": "java.verbal-expressions",
      "imports": "ru.lanwen.verbalregex.",
      "name": "VerbalExpressions",
      "repo": "VerbalExpressions/JavaVerbalExpressions",
      "tags": "regex",
      "tech": "utils",
      "status": "model-ready"
    }
  ],
  "meta": {
    "title": "Popular Java Libraries - Free Download",
    "description": "Curated list of popular Java libraries used by GitHub projects, with Maven import paths, GitHub repo, tags, and technology domain. Contains 337 records. Download in Excel, CSV, PDF formats.",
    "seo_title": "Popular Java Libraries | ListBase",
    "seo_description": "Download Popular Java Libraries — 337 records. Available in Excel, CSV, PDF formats.",
    "key_takeaways": [
      "Contains 337 records / 7 fields",
      "Available for free download in Excel, CSV, and PDF formats",
      "Data sourced from: https://github.com/sourcerer-io/awesome-libraries"
    ]
  }
}