All Projects → meraki-analytics → kernel

meraki-analytics / kernel

Licence: MIT license
A plug & play Riot API proxy server

Programming Languages

java
68154 projects - #9 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to kernel

runeterra
Legends of Runeterra deck code encoder/decoder in JavaScript
Stars: ✭ 45 (+60.71%)
Mutual labels:  league-of-legends, riot-games-api
LeagueAPI
League of Legends API & Data Framework in Swift
Stars: ✭ 50 (+78.57%)
Mutual labels:  league-of-legends, riot-games-api
Camille
C# Riot API Library. Thread safe, automatic retries, autogenerated nightly releases.
Stars: ✭ 82 (+192.86%)
Mutual labels:  league-of-legends, riot-games-api
Pyot
AsyncIO based high-level Python Riot Games API framework which encourages rapid development and clean, pragmatic design.
Stars: ✭ 56 (+100%)
Mutual labels:  league-of-legends, riot-games-api
lol-pick-ban-ui
Web-Based UI to display the league of legends champ select in esports tournaments.
Stars: ✭ 181 (+546.43%)
Mutual labels:  league-of-legends
lol launcher
League Of Legends 英雄联盟 启动器
Stars: ✭ 70 (+150%)
Mutual labels:  league-of-legends
KBotExt
Application that sends custom requests to League of Legends LCU api
Stars: ✭ 86 (+207.14%)
Mutual labels:  league-of-legends
LeagueReplayParser
C# library which can read some data from a .rofl file, and start a replay in the client. (no longer actively maintained)
Stars: ✭ 20 (-28.57%)
Mutual labels:  league-of-legends
ChromaLeague
Java open-source Razer Chroma keyboard integration for League of Legends
Stars: ✭ 34 (+21.43%)
Mutual labels:  league-of-legends
LoL-Auto-Login
Automatic login for League of Legends.
Stars: ✭ 28 (+0%)
Mutual labels:  league-of-legends
LOL2D-ver1
League Of Legends in 2D - Web Game
Stars: ✭ 27 (-3.57%)
Mutual labels:  league-of-legends
riot
Riot API and analytics goodies
Stars: ✭ 30 (+7.14%)
Mutual labels:  riot-games-api
LOLPrediction
英雄联盟胜负预测
Stars: ✭ 31 (+10.71%)
Mutual labels:  league-of-legends
lol-client-java-api
Simple library which provides access to internal League of Legends Client API.
Stars: ✭ 51 (+82.14%)
Mutual labels:  league-of-legends
Mecha
🚀 Debugger and plugin loader for the League of Legends client
Stars: ✭ 48 (+71.43%)
Mutual labels:  league-of-legends
lcu-driver
🐍 Python3 interface for League of Legends Client API
Stars: ✭ 71 (+153.57%)
Mutual labels:  league-of-legends
OddAutoWalker
League of Legends External Orb Walker
Stars: ✭ 56 (+100%)
Mutual labels:  league-of-legends
game apis
This repository is for integrating with different apis to allow you to pull player or game data
Stars: ✭ 24 (-14.29%)
Mutual labels:  league-of-legends
Riot-Games-API-Developer-Assets
Riot Games API Developer Assets!
Stars: ✭ 23 (-17.86%)
Mutual labels:  league-of-legends
golio
League of Legends API client written in Golang
Stars: ✭ 45 (+60.71%)
Mutual labels:  league-of-legends

Kernel - A plug & play Riot API proxy server

Kernel is built on top of orianna, a Riot API wrapper and framework for working with API data. The API Kernel provides mirrors the Riot API, and allows users to proxy their API calls through Kernel to avoid "leaking" their Riot API key to end users.

Kernel is built using the Thorntail application server with JAX-RS and RestEasy.

Kernel is licensed under the MIT License.

Features

Kernel also includes the following built-in features:

  • Automatic rate limit handling for the Riot API
  • Configurable strategies for handling Riot API errors (retry, expontential backoff, return null, etc)
  • A configurable pipeline for automatic caching of API results
    • Plug & Play support for several common databases in the works here
  • Support for MessagePack serialization in addition to JSON

API Differences from Riot API

Kernel is intended to mirror the Riot API exactly. The Riot API, however, is distributed accross regional platform domains to split computation load and localize content distribution (e.g. na1.api.riotgames.com or euw1.api.riotgames.com). Kernel supports serving all platforms from a single server instance using the platform query parameter, which is available for every API endpoint in Kernel. All Riot API platforms are supported by this feature. A default platform can be configured to direct requests without a platform query parameter to that platform.

Example: the Riot API call https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/FatalElement becomes http://localhost/lol/summoner/v4/summoners/by-name/FatalElement?platform=NA1 for Kernel.

How to get it

Kernel can be obtained and installed either through Docker or by building the application locally using Maven.

Docker

Kernel docker images are available on Docker Hub. If you're unfamiliar with docker, here's how to run them on your local machine:

If you want to change some configuration settings in Kernel, you can edit the kernel-config.json file from the configuration you chose, then add a volume entry to the docker-compose.yml file to load your config into the container.

Example: original compose file | compose file with custom kernel-config.json

Building Locally with Maven

  • Install JDK 8 or higher
  • Install Maven
  • Clone the Kernel source code locally & navigate to the folder
  • Run mvn clean package to build the application. Some maven profiles are available to bundle datastore dependencies in with the application. Use mvn clean package -P some,profile,names to activate them
  • From your Kernel source folder, copy target/kernel-thorntail.jar wherever you'd like to serve Kernel from
  • From your Kernel source folder, copy target/kernel-config.json wherever you'd like to serve Kernel from
  • Set your KERNEL_CONFIGURATION_PATH environment variable to point at your kernel-config.json
  • Set your RIOT_API_KEY environment variable to your Riot API Key
  • Run java -D"swarm.http.port=8080" -D"java.net.preferIPv4Stack=true" -D"java.net.preferIPv6Stack=true" -D"java.awt.headless=true" -jar kernel-thorntail.jar to launch Kernel.

Questions & Contributions

Feel free to send pull requests or to contact us via GitHub or Discord.

Disclaimer

Kernel 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].