Elite: Dangerous Long Range Router
Go to file
Daniel S. 314adbeb1d chore(changelog): Update changelog 2019-10-23 11:38:12 +02:00
.chglog chore: more cleanup 2019-09-20 17:44:33 +02:00
docs chore: Setup tox+appveyor, refomat python code, prepare rust code to add branch pruning to search 2019-09-20 17:40:56 +02:00
ed_lrr_gui chore(formatting): ran black to format sources 2019-10-23 11:36:45 +02:00
icon chore(formatting): ran black to format sources 2019-10-23 11:36:45 +02:00
installer feat(installer): switch from LZMA to LZMA2 2019-09-28 21:21:11 +02:00
rust chor(rust): Update Cargo.lock 2019-10-23 11:30:30 +02:00
.gitignore chore: Update .gitignore 2019-10-23 11:35:23 +02:00
CHANGELOG.md chore(changelog): Update changelog 2019-10-23 11:38:12 +02:00
LICENSE chore: Setup tox+appveyor, refomat python code, prepare rust code to add branch pruning to search 2019-09-20 17:40:56 +02:00
MANIFEST.in chore: Setup tox+appveyor, refomat python code, prepare rust code to add branch pruning to search 2019-09-20 17:40:56 +02:00
README.md docs(readme): Update README with more infos 2019-10-23 11:32:29 +02:00
appveyor.yml fix: switch inno setup version in appveyor 2019-09-21 21:25:02 +02:00
build_gui.py chore(formatting): ran black to format sources 2019-10-23 11:36:45 +02:00
pyproject.toml Initial commit 2019-08-05 01:26:43 +02:00
pytest.ini feat(tests): Add pytest.ini for pytest-qt 2019-10-23 11:37:03 +02:00
setup.py feat(setup.py): Update add dependencies for HTTP API 2019-10-23 11:35:54 +02:00
tox.ini feat(tox): Add more python versions to test against 2019-10-23 11:31:02 +02:00

README.md

Elite: Dangerous Long-range router

Features

  • Three different routing algorithms:
    • Breadth-first search:, always finds the shortest route but is quite slow
    • A-Star: has an adjustable tradeoff between speed and quality
    • Greedy search: always picks the next reachable star that's closest to the destination, very fast but very poor quality routes
  • Nice GUI! (made with PyQt5)
  • Two themes! (Dark and Light)
  • Uses data from (EDSM)[https://edsm.net/] for star data
  • Only routes through scoopable systems, no more running out of fuel! (assuming you have a fuel scoop)
  • Precomputing of BFS routing graphs for near-instant routing from your home system to any destination!
  • Routing code written in Rust, so it's quite speedy!
  • Export routes as HTML, JSON, CSV and SVG (WIP!)
  • Automagically copy next jump destination into system clipboard (works by monitoring the player journal file)

Installation

Prerequisites

  • Python:
    • conda (miniconda/anaconda)
    • tox (conda install tox)
    • Inno Setup Compiler
      • Download from here
      • or install via scoop scoop install inno-setup)
  • Visual Studio 2019
  • nightly rust compiler (x86_64-pc-windows-msvc)

Building an installer

(Assuming conda is in your PATH)

  1. Start a Visual Studio 2019 x64 command prompt
  2. Run tox
  3. Grab the installer from installer/Output/

Manual installation

(Assuming conda is in your PATH)

  1. Start a Visual Studio 2019 x64 command prompt
  2. Run the following commands:
conda install pycrypto nuitka
pip install PyQt5 setuptools_rust
python build_gui.py
pip install .

then you can run ed_lrr -h from your command prompt to get help

To do

Router

  • Caching wrapper for System
    • Only fetch position once when building Spatial-Tree
    • Fetch data on demand

GUI

  • Implement estimate time to completion display for route computation and preprocessing
  • Export route as:
    • JSON
    • HTML (WIP)
    • CSV
    • SVG

Installer

  • Update PATH from installer

Preprocessing

  • Build index over systemsWithCoordinates.json instead of loading it into RAM (reuse modified LineCache from router.rs)

Misc

  • Luigi based Task queue for distributed routing