Giter VIP home page Giter VIP logo

element43's Introduction

logo 43
Slack

element43

Element43 is a free and open web application providing market data for players of the MMORPG EVE Online. This includes the near real-time collection and processing of order book data of the entire game's economy as well as the calculation of various metrics for analytics based on historic price data. Data can be accessed via a modern web-based UI or a simple HTTP API serving JSON while internal communication is based on gRPC. The application's backend is split into multiple modular components/services implemented in a variety of languages. Builds are executed automatically and the application can be deployed as a collection of Docker containers. Work on element43 was started by a small group of developers spread all over the globe in summer 2012.

Note: Currently there is no hosted version of Element43 available. However, you can easily self-host the components listed below by using the Docker images.

Contributing

Contributions are always welcome! Feel free to get in touch with us on Slack or file an issue in this repository. PRs can be made in individual service's repositories. We also have a getting started guide for new developers.

Components

This repo serves as the entry point into element43's infrastructure. Shared code such as the component's gRPC interface descriptions is also kept in the main repo. The components listed here are under active development and serve as the application's core. In Follow the links in the first column to access the component's code and documentation. Until we provide an updated version of our development environment and the getting started guide, just ping us on Slack if you have any questions. Running individual components is a matter of executing a Docker container configured as outlined in the individual service's docs.


architecture

A simplified diagram of element43's structure.


CI Status Container Image Language Description
vue43 - Docker Image TypeScript Element43's SPA frontend based on VueJS/NuxtJS.
esi-markets Build Status Docker Image Rust One of element43's core components. This service keeps an in-memory representation of EVE Online's global order book and records individual order's history.
jumpgate - Docker Image Go Proxies HTTP/JSON requests from the outside to gRPC/Protobuf calls to internal services.
static-data - Docker Image Go Proxies and caches batch-calls to various static data APIs (1st/3rd party).
top-stations Build Status Docker Image Go Generates metrics for individual station's markets using data from esi-markets' API hourly
market-stats Build Status Docker Image Go Generates price/volume statistics for the entire economy every night.
market-streamer - Docker Image Go Fetches market data from ESI, converts it into UUDIF and streams it via ZMQ. Drop-in replacement for EMDR. Not used in the main application, however still supported until the end of 2018 to help with the migration from EMDR to ESI.

Legacy Components

These are legacy components of the application's older iterations which no longer are under active development. They were superseeded by the components listed above.

CI Status Container Image Language Description
element43-django - - Python 2 / Web Legacy monolithic web application based on Django, switched to componentized structure due to reasons outlined here. Legacy docs can be found here.
node-43 Build Status - JavaScript The Django application's market data ingestion service. Takes data from EMDR and stores it in Postgres DB. Worked nicely, however integration of data/services via DB generates tight coupling between applications.
vagrant-element43 - - Vagrant/Ansible A dev environment for the Django-based Element43 made with Vagrant and Ansible for getting started fast. Now everything is based on Docker and even faster.
emdr-to-nsq - - Go Takes market data from ZMQ stream, performs deduplication and pushes data onto a NSQ. Replaced by esi-markets.
order-server - - Go Stores order info from NSQ in Postgres DB and provides data as JSON via HTTP. Replaced by esi-markets.
search43 - - Python 3 A simple live-search API for Element43/EVE. Replaced by ESI's official endpoint.
emdr_consumer - - Elixir A market data consumer similar to emdr-to-nsq written in Elixir. Rewritten in Go because of library ecosystem and resource consumption.
orders - - Elixir A prototype of a market data storage backend similar to order-server written in Elixir.
static_data - - Elixir A prototype of a static data proxy similar to static-data written in Elixir.
crest - - Elixir A WIP Elixir client library for the now deprecated CREST API.
elixir-build-base - - Docker Base container image for Elixir-based builds. Not needed anymore.

element43's People

Contributors

zweizeichen avatar gregoberfield avatar jenslauterbach avatar snipa22 avatar gtaylor avatar evrial avatar ei-grad avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.