Internals

This chapter describes some internals of the project.

Project structure

The project consists of the following parts:

  • vrp solver code: the source code of the solver is split into four crates:
    • rosomaxa: a crate with various metaheuristic building blocks and its default implementation
    • vrp-core: a core crate for vrp domain
    • vrp-scientific: a crate with functionality to solve problems from some of scientific benchmarks on top of the core crate
    • vrp-pragmatic: a crate which provides logic to solve rich VRP using pragmatic json format on top of the core crate
    • vrp-cli: a crate which aggregates logic of others crates and exposes them as a library and application
  • docs: a source code of the user guide documentation published here. Use mdbook tool to build it locally.
  • examples: provides various examples:
    • data: a data examples such as problem definition, configuration, etc.
    • json-pragmatic: an example how to solve problem in pragmatic json format from rust code using the project crates
    • jvm-interop: a gradle project which demonstrates how to use the library from java and kotlin
  • experiments: a playground for various experiments