{"id":37022550,"url":"https://github.com/meraki-analytics/orianna","last_synced_at":"2026-01-14T02:41:45.935Z","repository":{"id":47281507,"uuid":"21159766","full_name":"meraki-analytics/orianna","owner":"meraki-analytics","description":"A Java framework for the Riot Games League of Legends API (http://developer.riotgames.com/).","archived":false,"fork":false,"pushed_at":"2025-06-27T15:34:48.000Z","size":2409,"stargazers_count":187,"open_issues_count":20,"forks_count":55,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-07-17T21:38:30.274Z","etag":null,"topics":["api","java","league-of-legends","riot-games-api"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meraki-analytics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-06-24T09:47:03.000Z","updated_at":"2025-07-17T02:55:29.000Z","dependencies_parsed_at":"2023-12-08T02:28:38.734Z","dependency_job_id":"fd64a158-5526-4dce-9387-ac7bf97809de","html_url":"https://github.com/meraki-analytics/orianna","commit_stats":null,"previous_names":["robrua/orianna"],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/meraki-analytics/orianna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meraki-analytics%2Forianna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meraki-analytics%2Forianna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meraki-analytics%2Forianna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meraki-analytics%2Forianna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meraki-analytics","download_url":"https://codeload.github.com/meraki-analytics/orianna/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meraki-analytics%2Forianna/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","java","league-of-legends","riot-games-api"],"created_at":"2026-01-14T02:41:45.273Z","updated_at":"2026-01-14T02:41:45.921Z","avatar_url":"https://github.com/meraki-analytics.png","language":"Java","funding_links":["https://www.paypal.me/merakianalytics","https://www.patreon.com/merakianalytics"],"categories":[],"sub_categories":[],"readme":"[![MIT Licensed](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/meraki-analytics/orianna/blob/master/LICENSE.txt)\n[![Maven Central](https://img.shields.io/maven-central/v/com.merakianalytics.orianna/orianna.svg)](https://search.maven.org/search?q=g:com.merakianalytics.orianna)\n[![Documentation Status](https://readthedocs.org/projects/orianna/badge/)](http://orianna.readthedocs.org/en/latest/)\n[![JavaDocs](http://javadoc.io/badge/com.merakianalytics.orianna/orianna.svg)](http://javadoc.io/doc/com.merakianalytics.orianna/orianna)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1169620.svg)](https://doi.org/10.5281/zenodo.1169620)\n\n# Orianna\nA Java adaptation of the Riot Games League of Legends API (https://developer.riotgames.com/).\n\nOrianna is the sister library to [Cassiopeia](https://github.com/meraki-analytics/cassiopeia) (Python). It's been designed with usability in mind - making sure all the bookkeeping is done right so you can focus on getting the data you need and building your application.\n\nOrianna is licensed under the [MIT License](https://github.com/meraki-analytics/orianna/blob/master/LICENSE.txt).\n\n## Documentation \u0026 Examples\nDetailed documentation about Orianna is located [here](http://orianna.readthedocs.io/en/latest/). The full JavaDoc for Orianna is available [here](http://javadoc.io/doc/com.merakianalytics.orianna/orianna). Examples of using Orianna can be found [here](https://github.com/meraki-analytics/orianna/tree/master/orianna-examples/src/main/java/com/merakianalytics/orianna/examples).\n\n## Features\nOrianna is designed to make the lives of Riot API developers as easy as possible. Here are some of the ways we do it:\n- An enhanced user interface that makes using the Riot API easy and fun\n  - Restructured and renamed API data for maximum clarity\n  - Fluent APIs for requesting data\n  - Automatic conversion of foreign keys into the objects they specify (e.g player.getChampion() instead of player.getChampionId())\n- Rate limits handled automatically with optimal usage of your API key\n- Configurable handling of API errors (e.g. automatic retry on 500 errors)\n- Built-in automatic caching, ready out of the box\n- DataDragon support\n- A highly configurable [pipeline](https://github.com/meraki-analytics/datapipelines-java) for requesting and caching Riot API data\n  - Allows flexibility in what database(s) you want to use to cache your data\n  - Off-the-shelf support for many popular databases under construction [here](https://github.com/meraki-analytics/orianna-datastores)\n  - Extensible to seamlessly integrate other data types and APIs, such as the [ChampionGG API](http://api.champion.gg/) (ChampionGG support coming soon!)\n\n## How to get it\nOrianna is distributed through the [releases page](https://github.com/meraki-analytics/orianna/releases) and through [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.merakianalytics.orianna%22). The easiest way to get it is by using [Maven](https://maven.apache.org/) or [Gradle](https://gradle.org/).\n\n### Maven\nTo add the latest Orianna release version to your maven project, add the dependency to your `pom.xml` dependencies section:\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.merakianalytics.orianna\u003c/groupId\u003e\n    \u003cartifactId\u003eorianna\u003c/artifactId\u003e\n    \u003cversion\u003e4.0.0-rc9\u003c/version\u003e\n    \u003c!-- or, for Android: --\u003e\n    \u003cartifactId\u003eorianna-android\u003c/artifactId\u003e\n    \u003cversion\u003e4.0.0-rc9\u003c/version\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\nOr, if you want to get the latest development version, add the [Sonaype Snapshot Repository](https://oss.sonatype.org/content/repositories/snapshots/) to your `pom.xml` as well:\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.merakianalytics.orianna\u003c/groupId\u003e\n    \u003cartifactId\u003eorianna\u003c/artifactId\u003e\n    \u003cversion\u003e4.0.0-SNAPSHOT\u003c/version\u003e\n    \u003c!-- or, for Android: --\u003e\n    \u003cartifactId\u003eorianna-android\u003c/artifactId\u003e\n    \u003cversion\u003e4.0.0-SNAPSHOT\u003c/version\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n\n\u003crepositories\u003e\n  \u003crepository\u003e\n    \u003cid\u003esnapshots-repo\u003c/id\u003e\n    \u003curl\u003ehttps://oss.sonatype.org/content/repositories/snapshots\u003c/url\u003e\n    \u003creleases\u003e\n      \u003cenabled\u003efalse\u003c/enabled\u003e\n    \u003c/releases\u003e\n    \u003csnapshots\u003e\n      \u003cenabled\u003etrue\u003c/enabled\u003e\n    \u003c/snapshots\u003e\n  \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n### Gradle\nTo add the latest Orianna release version to your gradle project, add the [Maven Central](https://search.maven.org/) repository to your `build.gradle` repositories section, and add the dependency to your build.gradle dependencies section:\n```gradle\nrepositories {\n  mavenCentral()\n}\n\ndependencies {\n  implementation \"com.merakianalytics.orianna:orianna:4.0.0-rc9\"\n  // or, for Android:\n  implementation \"com.merakianalytics.orianna:orianna-android:4.0.0-rc9\"\n}\n```\nOr, if you want to get the latest development version, add the [Sonaype Snapshot Repository](https://oss.sonatype.org/content/repositories/snapshots/) to your `build.gradle` instead:\n```gradle\nrepositories {\n  maven { url \"https://oss.sonatype.org/content/repositories/snapshots\" }\n}\n\ndependencies {\n  implementation \"com.merakianalytics.orianna:orianna:4.0.0-SNAPSHOT\"\n  // or, for Android:\n  implementation \"com.merakianalytics.orianna:orianna-android:4.0.0-SNAPSHOT\"\n}\n```\n\n### Using the release JAR directly\nGrab the latest JAR from the [releases page](https://github.com/meraki-analytics/orianna/releases) and add it to your project dependencies. JARs are provide both with and without Orianna's dependencies included. The `jar-with-dependencies` version will get you up \u0026 running faster, but can cause version conflicts if your project has other dependencies.\n\nIf you're using the JAR without dependencies inlcuded, Orianna depends on the following libraries which will also need to be added as dependencies:\n- [slf4j-api](https://www.slf4j.org/) (version 1.7.25)\n- [datapipelines](https://github.com/meraki-analytics/datapipelines-java) (version 1.0.4)\n- [hipster4j](http://www.hipster4j.org/) (version 1.0.1)\n- [guava](https://github.com/google/guava) (version 20.0)\n- [okhttp](http://square.github.io/okhttp/) (version 3.13.1)\n- [jackson-databind](https://github.com/FasterXML/jackson-databind) (version 2.10.0.pr1)\n- [jackson-dataformat-msgpack](https://github.com/msgpack/msgpack-java) (version 0.8.16)\n- [joda-time](http://www.joda.org/joda-time/) (version 2.10.1)\n- [jackson-datatype-joda](https://github.com/FasterXML/jackson-datatype-joda) (version 2.10.0.pr1)\n- [cache2k](https://cache2k.org/) (version 1.2.3.Final)\n\n## Example\nCheck out a basic example of Orianna in action. More examples are available [here](https://github.com/meraki-analytics/orianna/tree/master/orianna-examples/src/main/java/com/merakianalytics/orianna/examples).\n```java\nimport com.merakianalytics.orianna.Orianna;\nimport com.merakianalytics.orianna.types.common.Queue;\nimport com.merakianalytics.orianna.types.common.Region;\nimport com.merakianalytics.orianna.types.core.league.League;\nimport com.merakianalytics.orianna.types.core.staticdata.Champion;\nimport com.merakianalytics.orianna.types.core.staticdata.Champions;\nimport com.merakianalytics.orianna.types.core.summoner.Summoner;\n\npublic class Example {\n    public static void main(String[] args) {\n        Orianna.setRiotAPIKey(\"YOUR-API-KEY\");\n        Orianna.setDefaultRegion(Region.NORTH_AMERICA);\n\n        Summoner summoner = Orianna.summonerNamed(\"FatalElement\").get();\n        System.out.println(summoner.getName() + \" is level \" + summoner.getLevel() + \" on the \" + summoner.getRegion() + \" server.\");\n\n        Champions champions = Orianna.getChampions();\n        Champion randomChampion = champions.get((int)(Math.random() * champions.size()));\n        System.out.println(\"He enjoys playing champions such as \" + randomChampion.getName());\n\n        League challengerLeague = Orianna.challengerLeagueInQueue(Queue.RANKED_SOLO).get();\n        Summoner bestNA = challengerLeague.get(0).getSummoner();\n        System.out.println(\"He's not as good as \" + bestNA.getName() + \" at League, but probably a better Java programmer!\");\n    }\n}\n```\n\n## Configuring Orianna\nOrianna ships with a [default configuration](https://github.com/meraki-analytics/orianna/blob/master/orianna/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json) designed to get new users going as quickly as possible. However, you may find you want to take advantage of some of the configuration options Orianna supports by replacing that configuration with your own.\n\nOrianna is able to automatically load your Riot API Key from your environment variables on startup. To take advantage of this, set your `RIOT_API_KEY` environment variable to your Riot API Key.\n\nFor more complex configuration, just download the [default configuration](https://github.com/meraki-analytics/orianna/blob/master/orianna/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json), make the changes you'd like, and load the new configuration file when your program starts. Documentation describing the full range of configuration options available with Orianna can be found [here](http://orianna.readthedocs.io/en/latest/configuring-orianna.html).\n```java\nOrianna.loadConfiguration(new File(\"/path/to/your/configuration-file.json\"));\n```\nAlternatively, Orianna can automatically load your configuration file on startup if you set your `ORIANNA_CONFIGURATION_PATH` environment variable to the path of your configuration file.\n\n## Android Usage Note\nIf you're using Orianna with Android, be aware that using the default configuration which uses the [RiotAPI Data Source](https://github.com/meraki-analytics/orianna/blob/master/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/riotapi/RiotAPI.java) will result in leaking your API key to the users of your application as they can access the program memory and network requests Orianna is making. For personal applications you won't be sharing, that's okay. If you're going to distribute your application, however, you'll need to have Orianna make its calls indirectly through a proxy server. You can use [Kernel](https://github.com/meraki-analytics/kernel) to easily set up a proxy server along with the [Kernel Data Source](https://github.com/meraki-analytics/orianna/blob/master/orianna/src/main/java/com/merakianalytics/orianna/datapipeline/kernel/dto/Kernel.java) in Orianna to send your requests to it instead of the Riot API. \n\n### Simple Kernel Configuration\n[Here's an example](https://gist.github.com/robrua/c9248aa80212849e95e9002fac1970eb) of an Orianna configuration file that uses Kernel instead of the Riot API. Specifically, note [this section](https://gist.github.com/robrua/c9248aa80212849e95e9002fac1970eb#file-orianna-config-json-L201-L271) which replaces [this section](https://github.com/meraki-analytics/orianna/blob/master/orianna-android/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json#L201-L276) from the default configuration.\n\n### Recommended Kernel Configuration\nIt's recommended to configure Kernel to send \"data\" layer Orianna objects, rather than the \"dto\" layer objects it sends by default which mirror the Riot API exactly. This will reduce the amount of repeated computation that needs to be done between the Kernel server and the client Orianna instance. To use the \"data\" layer, configure your Kernel instance to \"produceCoreData\", as shown [here](https://github.com/meraki-analytics/kernel/blob/master/configurations/data/base/kernel-config.json#L2). On the Orianna end, you can then replace the Riot API configuration from the default configuration (shown [here](https://github.com/meraki-analytics/orianna/blob/master/orianna-android/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json#L201-L276)) with the \"data\" layer Kernel data source as shown [here](https://gist.github.com/robrua/cd9a1a082f2069750d2dbded11f5c770#file-orianna-config-json-L201-L271). You can also remove most of the [transformers](https://github.com/meraki-analytics/orianna/blob/master/orianna-android/src/main/resources/com/merakianalytics/orianna/default-orianna-config.json#L279-L297) from the default configuration (shown [here](https://gist.github.com/robrua/cd9a1a082f2069750d2dbded11f5c770#file-orianna-config-json-L274-L276)) as they won't be needed.\n\n## Questions \u0026 Contributions\nFeel free to send pull requests or to contact us via GitHub or [Discord](https://discord.gg/JRDk2JU). We also hang around the [Riot API Discord](https://discord.gg/riotapi), so come by and say hello. We love to hear what people are building with Orianna! If you would like to help us maintain Orianna, let us know on our [Discord](https://discord.gg/JRDk2JU).\n\n## Bugs\nIf you find bugs please let us know via a pull request or issue.\n\n## Citing Orianna\nIf you used Orianna for your research, please [cite the project](https://doi.org/10.5281/zenodo.1169620).\n\n## Support Us\nIf you've loved using Orianna, consider supporting us through [PayPal](https://www.paypal.me/merakianalytics) or [Patreon](https://www.patreon.com/merakianalytics).\n\n## Disclaimer\nOrianna isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing League of Legends. League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. League of Legends © Riot Games, Inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeraki-analytics%2Forianna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeraki-analytics%2Forianna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeraki-analytics%2Forianna/lists"}