Skip to content

Starting to develop New MSX API #10

Open
@karrowood

Description

@karrowood

The new MSX API has a few specific goals that it will need to accomplish in order to be successful. First, it will not be dependent on the EPANET libraries as the current version of MSX is. Next, it will not use input files such as the .inp EPANET input file, or the .msx MSX input file. Instead it will take input through a REST API with higher level language bindings. In this way, users will not have to worry about following a specific particular input/output format.

In order to start development of this, it will likely be easiest if we have a test environment that calls the API in the ways we desire, and then move over the functional pieces implementing the core logic of MSX. For example, a simple pseudo-code:

MSX msx_proj = msx_init()
msx_build_network(&msx_proj, net_description)
msx_add_species(&msx_proj, chemical_stuff)
msx_add_source(&msx_proj, location_info, species, concentration, ...)
msx_set_option(&msx_proj, ... option data ...)
msx_init_q(&msx_proj)
msx_evolve(&msx_proj, hydraulic_state, timestep)
msx_get_values(...)
etc...

After this starts to become more and more functional, then it will be important to start building adaptors to allow the old API to work with the new one for full backwards compatibility.

Let me know if you have any thoughts!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions