MCPcopy Index your code
hub / github.com/KonaeAkira/raphael-rs

github.com/KonaeAkira/raphael-rs @v0.28.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.28.5 ↗ · + Follow
801 symbols 1,679 edges 113 files 43 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Raphael XIV

:link: www.raphael-xiv.com (stable release)

:link: preview.raphael-rs.pages.dev (dev preview)

Raphael is a crafting rotation solver for the online game Final Fantasy XIV. It produces crafting macros that are tailored to your stats.

Contents

Optimal macro selection

The following is the specification of how the optimal macro is selected:

  • The generated macro must be able to finish the synthesis, i.e. reach 100% progress.
  • Valid macros are then ranked based on these criteria, in order:
  • Quality reached, capped at the target quality defined in the solver configuration. (Higher is better)
  • Number of macro steps. (Lower is better)
  • Total macro duration, in seconds. (Lower is better)

Anything not mentioned in the above specification is not guaranteed to be taken into account. If you would like to change/amend the specification, please submit a feature request.

If you find a macro that beats the generated macro according to the specification above, please submit a bug report.

How does it work?

  • Short answer: Branch-and-bound, best-first-search, dynamic programming, Pareto optimization.
  • Long answer: Algorithm Overview

Building from source

The Rust toolchain is required to build the solver. The current minimal supported Rust version (MSRV) is 1.92.0.

Native GUI

To build and run the application:

cargo run --release

Native CLI

To build and run the command-line interface (CLI):

cargo run --release --package raphael-cli -- <cli-args>

The CLI currently supports searching for items and solving for crafting rotations. Run the following to see the relevant help messages:

cargo run --release --package raphael-cli -- --help
cargo run --release --package raphael-cli -- search --help
cargo run --release --package raphael-cli -- solve --help

Some basic examples:

cargo run --release --package raphael-cli -- search --pattern "Fiberboard"
cargo run --release --package raphael-cli -- solve --recipe-id 36183 --stats 5400 4900 600

The CLI can also be installed so that it can be called from anywhere:

cargo install --path raphael-cli

Contributing

First of all, thank you for your interest in contributing to the project!

If you are looking for things to help out on, the Open Issues are a good place to start.

If you already have something in mind, feel free to open a pull request. Although ideally, you would discuss your idea on Discord beforehand to make sure it fits the general direction of the project and that no one else is already working on it.

Before submitting a pull request, make sure all tests are ok by running:

cargo test --workspace

[!IMPORTANT] Pull requests should be opened against the preview branch. The main branch is for releasing.

Extension points exported contracts — how you extend this code

SheetData (Interface)
(no doc) [9 implementers]
raphael-data-updater/src/lib.rs
ActionImpl (Interface)
(no doc) [35 implementers]
raphael-sim/src/actions.rs
ConsumableSelectType (Interface)
(no doc) [2 implementers]
src/elements/panels/consumable_select.rs

Core symbols most depended-on inside this repo

add
called by 117
raphael-sim/src/settings.rs
use_action
called by 69
raphael-sim/src/state.rs
remove
called by 47
raphael-sim/src/settings.rs
push
called by 43
raphael-solver/src/macro_solver/search_queue.rs
max_quality
called by 29
raphael-solver/src/lib.rs
get_item_name
called by 26
raphael-data/src/locales.rs
clone
called by 24
src/elements/panels/saved_rotations.rs
saturating_add
called by 20
raphael-solver/src/utils/pareto_front_builder.rs

Shape

Function 306
Method 292
Class 171
Enum 29
Interface 3

Languages

Rust100%

Modules by API surface

raphael-sim/src/actions.rs60 symbols
raphael-sim/tests/action_tests.rs36 symbols
src/elements/panels/saved_rotations.rs31 symbols
raphael-solver/tests/02_exhaustive.rs24 symbols
src/elements/panels/macro_view.rs23 symbols
raphael-data/src/locales.rs22 symbols
src/solve.rs21 symbols
raphael-solver/tests/01_progress_backload_exhaustive.rs19 symbols
raphael-solver/src/quality_upper_bound_solver/solver.rs18 symbols
src/elements/panels/recipe_select.rs17 symbols
src/context.rs17 symbols
raphael-solver/src/step_lower_bound_solver/solver.rs16 symbols

For agents

$ claude mcp add raphael-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page