This is the readme for the odin-rs repository, which is the main repository for the
Open Data Integration for wildland fire mitigation (ODIN) project. Please see the project webpage
on https://odin-fire.org for news, screen shots, presentations and technical documentation.
ODIN is a software framework to create servers that improve situational awareness for natural disaster mitigation. More specifically it is a framework to make it easy to import and process an open number of external data sources for (dynamic) information such as weather, ground-/aerial- and space-based sensors, threat assessment, simulation and tracking. The over-arching goal is to improve situational awareness by making more - and more timely - information available in stakeholder-specific single page web applications, not forcing users to context switch between dozens of external websites. ODINs goal is not to create yet another website running in the cloud. It is a toolset to create your web application. To that end it is open sourced under Apache v2, highly extensible and supports running ODIN servers within stakeholder organizations on a variety of hardware and operating systems.
The online documentation for odin-rs can be found on https://odin-fire.org/book (or built from odin_book in this repository).
To get an idea of what such ODIN servers might look like we refer to our talk at the Cesium DevCon 2025
ODIN-RS is a Rust based successor of the race-odin system that was implemented in Scala/Java (see RACE).
This Rust repository contains a Cargo workspace that consists of several sub-crates (odin_actor, odin_config, ..) that can be built or executed separately.
-
Git - the version control system that is by now ubiqitous
-
Rust toolchain - we recommend to manage the toolchain via
rustupAt this point ODIN-RS uses the stable toolchain.$> curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Periodic updates of the toolchain can be done by executing
rustup update -
GDAL - this platform specific native library for handling geospatial data is required by the
odin_gdalcrate and should be installed through respective package managers for your operating system -
MDBook - mdBook is a utility to create modern online books from Markdown files. You can install it using cargo:
shell $> cargo install mdbook
Building and running ODIN-RS executables is normally done through the command line cargo tool which is installed by rustup as mentioned above. While ODIN-RS can be built directly from the directory where this repository was cloned to we recommend to switch to the respective crate you are interested in, e.g.
$> cd odin_actor
$> cargo build --example hello_world
Compiling proc-macro2 v1.0.79
...
Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.20s
Running `.../odin-rs/target/debug/examples/hello_world`
hello world!Many ODIN applications require configuration and asset data that is not part of its source distribution. To learn about how to set up ODIN development systems, how to deploy production applications and about the details of existing ODIN sub-crates please refer to the odin_book which is part of the odin-rs repository and can be built/viewed through mdbook.
$> cd odin_book
$> mdbook serve
2024-07-18 10:07:57 [INFO] (mdbook::book): Book building has started
2024-07-18 10:07:57 [INFO] (mdbook::book): Running the html backend
2024-07-18 10:07:57 [INFO] (mdbook::cmd::serve): Serving on: http://localhost:3000
...The online version of odin_book is available on https://odin-fire.org/book.
Please also look at the examples/ directories of various ODIN crates.
Copyright © 2024, United States Government, as represented by the Administrator of the National Aeronautics and Space Administration. All rights reserved.
The “ODIN” software is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.