Skip to content

Latest commit

 

History

History
54 lines (43 loc) · 2.13 KB

dependencies.adoc

File metadata and controls

54 lines (43 loc) · 2.13 KB

Libraries

Webmodelica is based on the following tools and libraries:

Backend

  • Akka HTTP a library for HTTP-Backends.

  • Twitter’s Finagle a library for distributed systems. Its the middleware that drives Finatra and enables protocol-agnostic RPC-Calls based on Future’s. Each RPC-Call is a function: A ⇒ Future[B].

  • pureconfig a wrapper around Typesafe’s Config library. It parses a config file and generates a Scala case class. In our case it reads conf/webmodelica.conf and creates an instance of webmodelica.config.WMConfig.

  • scala cats functional programming library for scala. Its main purpose is for nested Monad transfomers, for example: Future[Option[A]].

  • MacWire dependency injection library using macros instead of runtime reflection magic. It generates object instantiation code using in-scope dependencies. Used in webmodelica.core.WebmodelicaModule.

  • chimney a library for converting objects between case classes. This allows easy conversion between case classes with similar shapes.

  • ScalaTest testing library for scala based on Behaviour driven Development. Its awesome ;).

  • sbt the scala build tool.

Frontend

  • React.js the SPA framework.

  • TypeScript

  • ramda.js a js library with functional utilities for lists, objects and maps.

  • Gitub’s octicons icon library similar to font awesome but from GitHub. redux, react-redux

  • bootstrap

  • react-bootstrap a component library for react based on bootstrap.

  • Microsoft’s Monaco Editor the code editor that powers VS Code. We are using it for editing Modelica code.