System Crates

As the name implies ODIN system crates provide functionality that is not directly associated to a specific application domain such as weather or even the general topic of disaster management. Most of them can be used for non-ODIN applications.

ODIN system crates can be divided into the following categories:

ODIN development

  • odin_build - this crate is a build- and runtime dependency for other ODIN crates. It provides the mechanism to build stand-alone applications that do not rely on separate resource files
  • odin_macro - this is collection of macros that implement domain specific languages used especially by odin_actor

cross-cutting functions

  • odin_common - this is primarily a collection of cross-cutting functions that extend the Rust standard libraries and provide some basic capabilities such as admin notification
  • odin_gdal - a crate that wraps and extends the GDAL library for geo-spatial data sets and images
  • odin_dem - a simple digital elevation model based on GDAL VRT

architectural crates

  • odin_actor - this crate implements a full actor system and is the architectural basis for most ODIN app crates
  • odin_action - a crate that provides generic callbacks (used primarily to make actors inter-operable)
  • odin_job - general system-global scheduling
  • odin_server - this crate provides the building blocks to construct web server actors
  • odin_share - crate that provides infrastructure to share data between services and users

client library support

  • odin_cesium - this crate provides assets for client side virtual globe rendering with CesiumJS